Description: While working on tdf#151184, I noticed that exporting the sample ODS file with Persian text (attachment 182676 [details]) leads to a crash. Steps to Reproduce: 1. Open attachment 182676 [details], which is an ODS file 2. Export to PDF Actual Results: Crash Expected Results: Not crashing Reproducible: Always User Profile Reset: No Additional Info: Version: 7.5.0.0.alpha0+ / LibreOffice Community Build ID: 92166dba58980fddb234cd7069694cbbca69a8f7 CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: x11 Locale: en-US (en_US.UTF-8); UI: en-US Calc: threaded
Not with 7.5+ Build ID: bb47ffbc9d36e83695aa0d01767d3f83533c04e0 VCL: x11 or gtk3 So please try with new profile.
If still crashes with new profile, please share PDF export setting.
Reproduced, you need to install the Vezir font (from bug 151184). CC Caolán, I think he was working on this code lately. Traceback: frame #0: 0x00007ff81eed800e libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007ff81ef0e1ff libsystem_pthread.dylib`pthread_kill + 263 frame #2: 0x00007ff81ee59d24 libsystem_c.dylib`abort + 123 frame #3: 0x00007ff81ee590cb libsystem_c.dylib`__assert_rtn + 314 * frame #4: 0x00000001160c954f libvcllo.dylib`ImplSubPixelToLogic(bCheck=true, n=1661.4015748031495, nDPI=720, nMapNum=1, nMapDenom=2540) at map.cxx:290:5 frame #5: 0x00000001160c92fc libvcllo.dylib`OutputDevice::SubPixelToLogic(this=0x000000013041e000, rDevicePt=0x0000000191cd8310, bCheck=true) const at map.cxx:1189:18 frame #6: 0x000000011631d53f libvcllo.dylib`vcl::PDFWriterImpl::drawHorizontalGlyphs(this=0x000000013041e000, rGlyphs=size=22, rLine=0x00007ff7bfef3ab8, rAlignOffset=0x00007ff7bfef3880, bFirst=true, fAngle=0, fXScale=1, fSkew=0, nFontHeight=353, nPixelFontHeight=100) at pdfwriter_impl.cxx:6377:23 frame #7: 0x000000011631b729 libvcllo.dylib`vcl::PDFWriterImpl::drawLayout(this=0x000000013041e000, rLayout=0x0000600003b3da40, rText=0x0000600002776000, bTextLines=true, bCheckSubPixelToLogic=true) at pdfwriter_impl.cxx:6750:17 frame #8: 0x000000011631fd40 libvcllo.dylib`vcl::PDFWriterImpl::drawTextArray(this=0x000000013041e000, rPos=0x0000600002775ff0, rText=0x0000600002776000, pDXArray=span<const int> @ 0x00007ff7bfef3bf0, pKashidaArray=(data_ = 0x0000000000000000, size_ = 0), nIndex=0, nLen=22) at pdfwriter_impl.cxx:6962:9 frame #9: 0x00000001162c11ff libvcllo.dylib`vcl::PDFWriter::DrawTextArray(this=0x00007ff7bfef6438, rStartPt=0x0000600002775ff0, rStr=0x0000600002776000, pDXAry=span<const int> @ 0x00007ff7bfef3c88, pKashidaAry=(data_ = 0x0000000000000000, size_ = 0), nIndex=0, nLen=22) at pdfwriter.cxx:89:22 frame #10: 0x00000001162c75b0 libvcllo.dylib`vcl::PDFWriterImpl::playMetafile(this=0x000000013041e000, i_rMtf=0x00007ff7bfef56a0, i_pOutDevData=0x00007ff7bfef63a8, i_rContext=0x00007ff7bfef56f8, pDummyVDev=0x0000000191cd6060) at pdfwriter_impl2.cxx:816:34 frame #11: 0x00000001162c297a libvcllo.dylib`vcl::PDFWriter::PlayMetafile(this=0x00007ff7bfef6438, i_rMTF=0x00007ff7bfef56a0, i_rPlayContext=0x00007ff7bfef56f8, i_pData=0x00007ff7bfef63a8) at pdfwriter.cxx:466:22 frame #12: 0x00000001a203bc53 libpdffilterlo.dylib`PDFExport::ImplExportPage(this=0x00007ff7bfef6ca0, rWriter=0x00007ff7bfef6438, rPDFExtOutDevData=0x00007ff7bfef63a8, rMtf=0x00007ff7bfef5c70) at pdfexport.cxx:1139:13 frame #13: 0x00000001a203ae25 libpdffilterlo.dylib`PDFExport::ExportSelection(this=0x00007ff7bfef6ca0, rPDFWriter=0x00007ff7bfef6438, rRenderable=0x00007ff7bfef6580, rSelection=0x00007ff7bfef6558, rRangeEnum=0x00007ff7bfef65a8, rRenderOptions=0x00007ff7bfef63a0, nPageCount=1) at pdfexport.cxx:248:25 frame #14: 0x00000001a2040f49 libpdffilterlo.dylib`PDFExport::Export(this=0x00007ff7bfef6ca0, rFile=0x00007ff7bfef6fc0, rFilterData=0x00007ff7bfef6f38) at pdfexport.cxx:994:28 frame #15: 0x00000001a20573d3 libpdffilterlo.dylib`PDFFilter::implExport(this=0x000060000276dd40, rDescriptor=0x00007ff7bfef74d0) at pdffilter.cxx:185:24 frame #16: 0x00000001a2057f6c libpdffilterlo.dylib`PDFFilter::filter(this=0x000060000276dd40, rDescriptor=0x00007ff7bfef74d0) at pdffilter.cxx:248:23 frame #17: 0x000000010936cf0a libsfxlo.dylib`SfxObjectShell::ExportTo(this=0x0000000191c323a0, rMedium=0x00006000005fb860) at objstor.cxx:2494:25 frame #18: 0x0000000109368698 libsfxlo.dylib`SfxObjectShell::SaveTo_Impl(this=0x0000000191c323a0, rMedium=0x00006000005fb860, pSet=0x0000000000000000) at objstor.cxx:1562:19 frame #19: 0x0000000109375ac9 libsfxlo.dylib`SfxObjectShell::PreDoSaveAs_Impl(this=0x0000000191c323a0, rFileName=0x00007ff7bfef8d20, aFilterName=0x00007ff7bfef9138, rItemSet=0x00007ff7bfef99c8, rArgs=0x00007ff7bfefa370) at objstor.cxx:2981:39 frame #20: 0x0000000109373ae8 libsfxlo.dylib`SfxObjectShell::CommonSaveAs_Impl(this=0x0000000191c323a0, aURL=0x00007ff7bfef9150, aFilterName=0x00007ff7bfef9138, rItemSet=0x00007ff7bfef99c8, rArgs=0x00007ff7bfefa370) at objstor.cxx:2771:9 frame #21: 0x0000000109346747 libsfxlo.dylib`SfxObjectShell::APISaveAs_Impl(this=0x0000000191c323a0, aFileName=(__data = u"file:///Users/khaled/Development/attic/attic/libreoffice/a%20Spressheet%20Test.pdf", __size = 82), rItemSet=0x00007ff7bfef99c8, rArgs=0x00007ff7bfefa370) at objserv.cxx:318:19 frame #22: 0x00000001093ccd92 libsfxlo.dylib`SfxBaseModel::impl_store(this=0x0000000191c33520, sURL=0x00007ff7bfefa3c0, seqArguments=0x00007ff7bfefa370, bSaveTo=true) at sfxbasemodel.cxx:3146:42 frame #23: 0x00000001093ce49e libsfxlo.dylib`SfxBaseModel::storeToURL(this=0x0000000191c33520, rURL=0x00007ff7bfefa3c0, rArgs=0x00007ff7bfefa370) at sfxbasemodel.cxx:1782:13 frame #24: 0x0000000100e035bb libsofficeapp.dylib`desktop::DispatchWatcher::executeDispatchRequests(this=0x0000600001b4aa00, aDispatchRequestsList=size=1, bNoTerminate=false) at dispatchwatcher.cxx:676:48 frame #25: 0x0000000100e1eb77 libsofficeapp.dylib`desktop::RequestHandler::ExecuteCmdLineRequests(aRequest=0x00007ff7bfefba30, noTerminate=false) at officeipcthread.cxx:1355:38 frame #26: 0x0000000100db76de libsofficeapp.dylib`desktop::Desktop::OpenClients() at app.cxx:2133:14 frame #27: 0x0000000100db55a7 libsofficeapp.dylib`desktop::Desktop::OpenClients_Impl(this=0x00007ff7bfefe7b8, (null)=0x0000000000000000) at app.cxx:1913:5 frame #28: 0x0000000100db264d libsofficeapp.dylib`desktop::Desktop::LinkStubOpenClients_Impl(instance=0x00007ff7bfefe7b8, data=0x0000000000000000) at app.cxx:1897:1 frame #29: 0x0000000115e357c8 libvcllo.dylib`Link<void*, void>::Call(this=0x000060000227e948, data=0x0000000000000000) const at link.hxx:111:45 frame #30: 0x0000000115e316f9 libvcllo.dylib`ImplHandleUserEvent(pSVEvent=0x000060000227e940) at winproc.cxx:2287:30 frame #31: 0x0000000115e2e0e3 libvcllo.dylib`ImplWindowFrameProc(_pWindow=0x0000600002911880, nEvent=UserEvent, pEvent=0x000060000227e940) at winproc.cxx:2857:13 frame #32: 0x000000010e9ef4e0 libvclplug_osxlo.dylib`SalFrame::CallCallback(this=0x000000010e60abf0, nEvent=UserEvent, pEvent=0x000060000227e940) const at salframe.hxx:306:29 frame #33: 0x000000010ea07cc7 libvclplug_osxlo.dylib`AquaSalInstance::ProcessEvent(this=0x0000600003d0c1e0, aEvent=(m_pFrame = 0x000000010e60abf0, m_pData = 0x000060000227e940, m_nEvent = UserEvent)) at salinst.cxx:390:22 frame #34: 0x00000001165af79e libvcllo.dylib`SalUserEventList::DispatchUserEvents(this=0x00007ff7bfefccb0)::$_0::operator()() const at salusereventlist.cxx:119:58 frame #35: 0x00000001165af1aa libvcllo.dylib`SalUserEventList::DispatchUserEvents(this=0x0000600003d0c1e0, bHandleAllCurrentEvents=false) at salusereventlist.cxx:120:13 frame #36: 0x000000010ea088bd libvclplug_osxlo.dylib`AquaSalInstance::DoYield(this=0x0000600003d0c1e0, bWait=true, bHandleAllCurrentEvents=false) at salinst.cxx:526:22 frame #37: 0x0000000116685020 libvcllo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at svapp.cxx:475:48 frame #38: 0x000000011668497c libvcllo.dylib`Application::Yield() at svapp.cxx:559:5 frame #39: 0x0000000116684740 libvcllo.dylib`Application::Execute() at svapp.cxx:453:13 frame #40: 0x0000000100daf34b libsofficeapp.dylib`desktop::Desktop::Main(this=0x00007ff7bfefe7b8) at app.cxx:1604:13 frame #41: 0x00000001166a8165 libvcllo.dylib`ImplSVMain() at svmain.cxx:203:35 frame #42: 0x000000010ea07df6 libvclplug_osxlo.dylib`AquaSalInstance::handleAppDefinedEvent(pEvent=0x0000600003714000) at salinst.cxx:411:20 frame #43: 0x000000010eaa9e0e libvclplug_osxlo.dylib`-[VCL_NSApplication sendEvent:](self=0x000000010e504ec0, _cmd="sendEvent:", pEvent=0x0000600003714000) at vclnsapp.mm:89:9 frame #44: 0x00007ff821e3518b AppKit`-[NSApplication _handleEvent:] + 65 frame #45: 0x00007ff8219fdd3e AppKit`-[NSApplication run] + 623 frame #46: 0x00007ff8219d1c97 AppKit`NSApplicationMain + 817 frame #47: 0x000000010ea0c731 libvclplug_osxlo.dylib`AquaSalInstance::SVMainHook(this=0x0000600003d0c1e0, pnInit=0x00007ff7bfefe704) at salinst.cxx:976:5 frame #48: 0x00000001166a812a libvcllo.dylib`ImplSVMain() at svmain.cxx:196:54 frame #49: 0x00000001166a9e89 libvcllo.dylib`SVMain() at svmain.cxx:235:12 frame #50: 0x0000000100e34434 libsofficeapp.dylib`soffice_main at sofficemain.cxx:94:12 frame #51: 0x0000000100003f5d soffice`sal_main at main.c:51:15 frame #52: 0x0000000100003f37 soffice`main(argc=4, argv=0x00007ff7bfefe9e8) at main.c:49:1 frame #53: 0x000000010001152e dyld`start + 462
its an assert, rather than a crash, so only visible in the NDEBUG dev builds
Caolán McNamara committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/8361df4cf3728ef5e98b6c95a06a4bc829c8fd44 tdf#151187 don't check glyph substitute positions It will be available in 7.5.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.