Description: Dump and slow saving of specific XLSX when tested with master 5.4+ Steps to Reproduce: 1. Open XLSX attachment 122902 [details] from Bug 98106 2. Save as XLSX 3. (optionally) use path-to\SYSINTERNALSSUITE\procdump.exe soffice.bin -h path-to\soffice.bin.dmp Actual Results: Unusually slow saving and dump. Tested in Windows 7. Expected Results: Normal save like with previous versions. Reproducible: Always User Profile Reset: Additional Info: 0:000> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* *** ERROR: Symbol file could not be found. Defaulted to export symbols for soffice.bin - GetUrlPageData2 (WinHttp) failed: 12029. FAULTING_IP: +1e5b6cc071980000 00000000 ?? ??? EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 00000000 ExceptionCode: 80000003 (Break instruction exception) ExceptionFlags: 00000000 NumberParameters: 0 CONTEXT: 00000000 -- (.cxr 0x0;r) eax=00000000 ebx=00000000 ecx=20551c80 edx=20551c08 esi=20551c84 edi=00000000 eip=51a02220 esp=00ddb9fc ebp=00ddba14 iopl=0 nv up ei pl zr na pe nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246 scfiltlo!std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > > >::_Parent: 51a02220 55 push ebp FAULTING_THREAD: 000015c4 DEFAULT_BUCKET_ID: STATUS_BREAKPOINT PROCESS_NAME: soffice.bin ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached. EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid NTGLOBALFLAG: 400 APPLICATION_VERIFIER_FLAGS: 0 APP: soffice.bin ANALYSIS_VERSION: 6.3.9600.16384 (debuggers(dbg).130821-1623) x86fre PRIMARY_PROBLEM_CLASS: STATUS_BREAKPOINT BUGCHECK_STR: APPLICATION_FAULT_STATUS_BREAKPOINT LAST_CONTROL_TRANSFER: from 519e0180 to 51a02220 STACK_TEXT: 00ddb9f8 519e0180 20551c80 57c29c70 20551c80 scfiltlo!std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > > >::_Parent 00ddba14 519e426a 00ddba40 00000000 20551c08 scfiltlo!std::_Tree<std::_Tmap_traits<unsigned long,std::shared_ptr<XclExpRow>,std::less<unsigned long>,std::allocator<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > >,0> >::_Insert_at<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> >,std::_Nil>+0x2f0 00ddbad8 51a091aa 00ddbb18 00000000 00ddbb0c scfiltlo!std::_Tree<std::_Tmap_traits<unsigned long,std::shared_ptr<XclExpRow>,std::less<unsigned long>,std::allocator<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > >,0> >::_Insert_nohint<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> >,std::_Nil>+0x2ea 00ddbaf4 519f7649 00ddbb18 00ddbb0c de5306bd scfiltlo!std::_Tree<std::_Tmap_traits<unsigned long,std::shared_ptr<XclExpRow>,std::less<unsigned long>,std::allocator<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > >,0> >::insert+0x2a 00ddbb6c 519f4965 00059e81 00000000 00ddbe10 scfiltlo!XclExpRowBuffer::GetOrCreateRow+0x219 00ddbb88 519ee528 00ddbe10 00000000 de530385 scfiltlo!XclExpRowBuffer::AppendCell+0x65 00ddbe54 5187c8c6 0e3b5f1c de530205 77ace172 scfiltlo!XclExpCellTable::XclExpCellTable+0xcc8 00ddbfd4 5187d6bc de537d95 00000000 04e92394 scfiltlo!ExcTable::FillAsTableXml+0x116 00ddc044 519b5bd1 de537ea1 51d98240 00ddc130 scfiltlo!ExcDocument::ReadDoc+0x19c 00ddc370 531cda99 de6c6a36 00000000 00000000 scfiltlo!XclExpXmlStream::exportDocument+0x6a1 00ddc3c4 51bae328 09cb165c 00ddc5b0 de5379dd ooxlo!oox::core::FilterBase::filter+0x279 00ddc40c 57281b94 0458c47c 00ddc5b0 d8f86d1b scfiltlo!oox::xls::ExcelFilter::filter+0x168 00ddc5c8 572885df 069635b8 d8f878db 00000000 sfxlo!SfxObjectShell::ExportTo+0xa74 00ddd008 57284e17 069635b8 00000000 d8f8783b sfxlo!SfxObjectShell::SaveTo_Impl+0x217f 00ddd0e8 5727c8f3 00ddd2bc 00ddd468 0e287c78 sfxlo!SfxObjectShell::PreDoSaveAs_Impl+0x457 00ddd388 5727422e 00ddd3a0 00ddd468 0e287c78 sfxlo!SfxObjectShell::CommonSaveAs_Impl+0x893 00ddd480 572c8c49 00dddc30 0e287c78 d8f87f47 sfxlo!SfxObjectShell::APISaveAs_Impl+0x30e 00ddd794 572ce6d4 00dddc30 00dde51c 00000000 sfxlo!SfxBaseModel::impl_store+0xc79 00ddd7e4 57257e79 06de4590 00dddc30 00dde51c sfxlo!SfxBaseModel::storeAsURL+0xf4 00ddded8 57275bde 00dde3f0 00dde3e8 00dde51c sfxlo!SfxStoringHelper::GUIStoreModel+0x2119 00dde578 572792da 00dde844 00dde598 570cd812 sfxlo!SfxObjectShell::ExecFile_Impl+0x13fe 00dde584 570cd812 0ded90f8 00dde844 0ded90f8 sfxlo!SfxStubSfxObjectShellExecFile_Impl+0x1a 00dde598 570ed633 572792c0 00dde844 572792c0 sfxlo!SfxShell::CallExec+0x12 00dde5b8 52a89bf4 00dde844 04c0f840 00dde5d8 sfxlo!SfxShell::ExecuteSlot+0xc3 00dde5dc 52a7b83a 00dde844 00dde5fc 570cd812 sclo!ScTabViewShell::ExecuteSave+0xd4 00dde5e8 570cd812 06b3cb08 00dde844 06b3cb08 sclo!SfxStubScTabViewShellExecuteSave+0x1a 00dde5fc 570cda91 52a7b820 00dde844 d8f84ebb sfxlo!SfxShell::CallExec+0x12 00dde668 570cfbc2 06b3cb08 530bd4a8 00dde844 sfxlo!SfxDispatcher::Call_Impl+0x271 00dde6b8 570b51de 06b3cb08 530bd4a8 00dde844 sfxlo!SfxDispatcher::Execute_+0x282 00dde770 5711f13e 00dde844 530bd4a8 06b3cb08 sfxlo!SfxBindings::Execute_Impl+0x55e 00dde934 5711f50c 0e2e1308 00dde984 00ddea28 sfxlo!SfxDispatchController_Impl::dispatch+0x8ae 00dde96c 55447895 0559cd84 00dde984 00ddea28 sfxlo!SfxOfficeDispatch::dispatch+0x7c 00ddea50 55445e9f 067ad6f0 00ddea74 576d7b79 fwklo!framework::MenuBarManager::Select+0x445 00ddea5c 576d7b79 0514dab0 067ad6f0 067ad724 fwklo!framework::MenuBarManager::LinkStubSelect+0xf 00ddea74 576e03ee 067ad6f0 d8f843fe 00000000 vcllo!Link<Menu *,bool>::Call+0x29 00ddeaa0 576dad9e 067ad6f0 00ddeab8 576dff3f vcllo!Menu::Select+0x7e 00ddeaac 576dff3f 00000000 00ddeacc 57785c93 vcllo!Menu::ImplCallSelect+0x1e 00ddeab8 57785c93 067ad6f0 00000000 067d9944 vcllo!Menu::LinkStubImplCallSelect+0xf 00ddeacc 5778bec8 00000000 04be3ffc 00ddeae8 vcllo!Link<void *,void>::Call+0x23 00ddeae4 5778c6d2 067d9940 d8f84596 57c29c70 vcllo!ImplHandleUserEvent+0x28 00ddecc8 57c1f9de 04be3eb8 00000013 067d9940 vcllo!ImplWindowFrameProc+0x692 00ddece4 57c25efc 00000013 067d9940 04be4250 vcllo!SalFrame::CallCallback+0x2e 00ddecf8 57c29517 002605b2 067d9940 d8f8471e vcllo!ImplHandleUserEvent+0x2c 00ddee40 57c29cd1 002605b2 00000482 00000000 vcllo!SalFrameWndProc+0x797 00ddee90 770f62fa 002605b2 00000482 00000000 vcllo!SalFrameWndProcW+0x61 00ddeebc 770f6d3a 57c29c70 002605b2 00000482 user32!InternalCallWinProc+0x23 00ddef34 770f77d3 00000000 57c29c70 002605b2 user32!UserCallWinProcCheckWow+0x109 00ddef98 770f789a 57c29c70 00000000 00ddefbc user32!DispatchMessageWorker+0x3cb 00ddefa8 57bcfb66 00ddefc8 00000000 0101eb88 user32!DispatchMessageW+0xf 00ddefbc 57bcfc55 00ddefc8 002605b2 00000482 vcllo!ImplSalDispatchMessage+0x36 00ddeff4 57bcfa21 00000000 00000000 0101eb88 vcllo!ImplSalYield+0x55 00ddf028 57aade0a 00000000 00000000 00000000 vcllo!WinSalInstance::DoYield+0x101 00ddf274 57ab006e 00000000 00000000 00000000 vcllo!ImplYield+0x27a 00ddf288 57aabeb6 d8f85b8e 00ddf2ac 04b9de10 vcllo!Application::Yield+0xe 00ddf2d0 65b7ee69 00ddf9e0 65b83c4d d8f85179 vcllo!Application::Execute+0x1b6 00ddf2d8 65b83c4d d8f85179 00000000 00f342fe sofficeapp!desktop::Desktop::DoExecute+0x9 00ddf9e0 57ab6387 d8f853f2 00000001 00000000 sofficeapp!desktop::Desktop::Main+0x1acd 00ddfaac 57ab682f 00000000 00ddfb2c 65bbbc14 vcllo!ImplSVMain+0x147 00ddfab8 65bbbc14 d8f853b5 65c3b44c 00000000 vcllo!SVMain+0x2f 00ddfb2c 0138100a d82583a4 00ddfb44 0138103a sofficeapp!soffice_main+0x74 WARNING: Stack unwind information not available. Following frames may be wrong. 00ddfb38 0138103a 00f95cd8 00ddfb5c 01381078 soffice+0x100a 00ddfb44 01381078 00000002 00f95cd8 00000002 soffice!main+0x1a 00ddfb5c 013812ce 01380000 00000000 00f342fe soffice!main+0x58 00ddfba8 76fe338a 7efde000 00ddfbf4 77ad9902 soffice!main+0x2ae 00ddfbb4 77ad9902 7efde000 767af13c 00000000 kernel32!BaseThreadInitThunk+0xe 00ddfbf4 77ad98d5 0138119f 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70 00ddfc0c 00000000 0138119f 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b FOLLOWUP_IP: scfiltlo!std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > > >::_Parent+0 [c:\program files (x86)\microsoft visual studio 12.0\vc\include\xtree @ 593] 51a02220 55 push ebp FAULTING_SOURCE_LINE: c:\program files (x86)\microsoft visual studio 12.0\vc\include\xtree FAULTING_SOURCE_FILE: c:\program files (x86)\microsoft visual studio 12.0\vc\include\xtree FAULTING_SOURCE_LINE_NUMBER: 593 FAULTING_SOURCE_CODE: No source found for 'c:\program files (x86)\microsoft visual studio 12.0\vc\include\xtree' SYMBOL_STACK_INDEX: 0 SYMBOL_NAME: scfiltlo!std::_Tree_val<std::_Tree_simple_types<std::pair<unsigned long const ,std::shared_ptr<XclExpRow> > > >::_Parent+ddb9f8 FOLLOWUP_NAME: MachineOwner MODULE_NAME: scfiltlo IMAGE_NAME: scfiltlo.dll DEBUG_FLR_IMAGE_TIMESTAMP: 58370312 STACK_COMMAND: dt ntdll!LdrpLastDllInitializer BaseDllName ; dt ntdll!LdrpFailureData ; ~0s; .ecxr ; kb FAILURE_BUCKET_ID: STATUS_BREAKPOINT_80000003_scfiltlo.dll!std::_Tree_val_std::_Tree_simple_types_std::pair_unsigned_long_const_,std::shared_ptr_XclExpRow_______::_Parent BUCKET_ID: APPLICATION_FAULT_STATUS_BREAKPOINT_scfiltlo!std::_Tree_val_std::_Tree_simple_types_std::pair_unsigned_long_const_,std::shared_ptr_XclExpRow_______::_Parent+ddb9f8 ANALYSIS_SOURCE: UM FAILURE_ID_HASH_STRING: um:status_breakpoint_80000003_scfiltlo.dll!std::_tree_val_std::_tree_simple_types_std::pair_unsigned_long_const_,std::shared_ptr_xclexprow_______::_parent FAILURE_ID_HASH: {4c6cf4a3-3744-3258-e510-c668badda153} Followup: MachineOwner --------- User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
Oh great, a document that has formatting applied across the entire sheet. I don't get a crash (or what was referred with dump?) but a sluggish save, also on 5-3 branch.
Could you please attach mentioned .xlsx file which was resaved with LO 5.3?
Created attachment 129354 [details] test case doc as saved by 5-3 I don't know why, it can be easily generated, but here it is..
I think bug 104451 could be related to that issue. The file which is causing problems is attachment 129319 [details]
@Bartosz: makes sense, too many rows are looped through here, which likely is directly related to https://cgit.freedesktop.org/libreoffice/core/commit/?id=5239cefff56875c7bb45c046977f1724aace0cfb and I don't get the slow down on current 5-2 branch which has most xlsx-fixes applied but not that one. As I said already on IRC that change probably is wrong anyway.
Eike Rathke committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=00afb44987ccd10bce740aef53861ec53c75c95f tdf#104434 tdf#104451 Revert "tdf#46738 Fix exporting .xlsx of coloured em"... It will be available in 5.4.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Eike Rathke committed a patch related to this issue. It has been pushed to "libreoffice-5-3": http://cgit.freedesktop.org/libreoffice/core/commit/?id=50d746b78f5600a94830143b1bd5facab4d60c25&h=libreoffice-5-3 tdf#104434 tdf#104451 Revert "tdf#46738 Fix exporting .xlsx of coloured em"... It will be available in 5.3.0.1. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
(In reply to Eike Rathke from comment #1) > I don't get a crash (or what was referred with dump?) but a sluggish save, > also on 5-3 branch. I use "Dump" as a result of procdump in Windows which I then submit to WinDbg. Crashes are not always fatal, like this one, and LO process is recoverable then. But it means something is wrong, I used to submit a couple of them, like Bug 103533. I don't know what's the exact Linux counterpart. ProcDump is a command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during a spike that an administrator or developer can use to determine the cause of the spike. ProcDump also includes hung window monitoring (using the same definition of a window hang that Windows and Task Manager use), unhandled exception monitoring and can generate dumps based on the values of system performance counters. It also can serve as a general process dump utility that you can embed in other scripts.