Bug 94792 - Fileopen: performance regression for xlsx with chart with >1.000 data labels; also dump (svllo!SfxBroadcaster::RemoveListener+16)
Summary: Fileopen: performance regression for xlsx with chart with >1.000 data labels;...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
3.4.0 release
Hardware: Other All
: medium minor
Assignee: Not Assigned
URL:
Whiteboard: target:6.2.0 target:6.1.0.1
Keywords: perf, preBibisect, regression
Depends on:
Blocks: XLSX
  Show dependency treegraph
 
Reported: 2015-10-05 15:33 UTC by c.kirbach
Modified: 2018-06-19 18:34 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
gdb information LO 4.4.5.2 (72.85 KB, text/x-log)
2015-10-05 15:33 UTC, c.kirbach
Details
minimum test case (2.15 MB, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
2015-10-18 08:47 UTC, c.kirbach
Details

Note You need to log in before you can comment on or make changes to this bug.
Description c.kirbach 2015-10-05 15:33:25 UTC
Created attachment 119312 [details]
gdb information LO 4.4.5.2

Infinite loop (100% CPU usage) trying to open Excel file

Cannot provide the Excel as it is confidential but may be able to reduce it to a minimum test case

attaching the gdb diagnose information I tool
Comment 1 Timur 2015-10-05 17:13:33 UTC
Please attach anonymized Excel file (xlsx, xls?)
Please try with the current LO master, for example http://dev-builds.libreoffice.org/daily/master/Linux-rpm_deb-x86_64@70-TDF/current/.
Comment 2 c.kirbach 2015-10-18 08:46:40 UTC

Infinite loop does not happen with lastest LO5 alpha build.
I reduced it to an anonymised minimum test case that I am attaching.
Comment 3 c.kirbach 2015-10-18 08:47:27 UTC
Created attachment 119712 [details]
minimum test case
Comment 4 Timur 2015-10-19 08:48:47 UTC
(In reply to c.kirbach from comment #2)
> Infinite loop does not happen with latest LO5 alpha build.
It doesn't happen with master, LO 5.1+, although it's rather slow to open.
It opens even with 5.0.2.2, but after a "very" long time, so I wouldn't say it's  infinite loop. It was some recent regression in terms of terribly slow opening.
Looks like something is fixed, and future releases 5.0.3 and 4.4.6 should be checked for backport.

I think this bug may be closed as "WorksForMe" but another one should be open for poor performance with the opening. It's a regression from LO 3.4. 
LO 5.1+ took 112 sec in Windows with i7 processor. OO 3.3 and LO 3.3.4 took "only" 27 seconds to open.
Or this bug may be changed to "Fileopen: performance regression for xlsx with chart"
Comment 5 c.kirbach 2015-10-20 15:27:03 UTC Comment hidden (obsolete)
Comment 6 Markus Mohrhard 2016-04-08 02:08:58 UTC
Please don't forget to tag performance problems as they can be easily missed.
Comment 7 Markus Mohrhard 2016-04-18 23:52:43 UTC
(In reply to c.kirbach from comment #5)
> Renaming as suggested by you.
> 
> 
> It doesn't happen with master, LO 5.1+, although it's rather slow to open.
> It opens even with 5.0.2.2, but after a "very" long time. It was some recent
> regression in terms of terribly slow opening.
> Looks like something is fixed, and future releases 5.0.3 and 4.4.6 should be
> checked for backport.

Performance improvements are nearly never backported.
Comment 8 Xisco Faulí 2016-09-20 12:28:26 UTC Comment hidden (obsolete)
Comment 9 Xisco Faulí 2017-09-29 08:48:14 UTC Comment hidden (obsolete)
Comment 10 c.kirbach 2017-12-18 10:10:03 UTC
I retested with LO 5.4.4 and the former behaviour was significantly improved. Opening the test file takes about 25 seconds.

I think we could do even better, but as the worst has been resolved. I will leave it for others to decide whether it is worth to keep this case open.

Thank you for your support in this issue.
Comment 11 Timur 2017-12-18 10:44:59 UTC
It takes 55 sec for me to open in LO 6.1+ and just 5 sec in MSO. 
Although it's also slow in MSO ang gives warning "Max number of data labels is 1.000. Some labels will be omitted from the chart". 

But, there also a dump on fileopen that can be seen with procdump:
SYMBOL_NAME:  svllo!SfxBroadcaster::RemoveListener+16
IMAGE_NAME:  svllo.dll
FAILURE_ID_HASH_STRING:  um:status_breakpoint_80000003_svllo.dll!sfxbroadcaster::removelistener

So I 'll set back to New. 
(BTW: if it worked it'd be WorksForMe and not FIXED which is used if fix commit is known)
Comment 12 Commit Notification 2018-06-15 07:05:03 UTC
Noel Grandin committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=20083840700518d8c0ec314974249254eb859de7

tdf#94792 performance regression for xlsx with chart with >1000 data labels

It will be available in 6.2.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.
Comment 13 Noel Grandin 2018-06-15 07:08:17 UTC
Note that there is no point in comparing LO to MSO if MSO is going to throw most of the data away.
Comment 14 Julien Nabet 2018-06-15 07:48:22 UTC
Noel: a gain of 30% is a lot! Did you plan some backports (at least on 6.1)
Comment 15 Timur 2018-06-18 08:47:21 UTC
There's again dump with master but different one: 
MODULE_NAME: heap_corruption
DEBUG_FLR_IMAGE_TIMESTAMP:  0
STACK_COMMAND:  dt ntdll!LdrpLastDllInitializer BaseDllName ; dt ntdll!LdrpFailureData ; ** Pseudo Context ** ; kb
FAILURE_BUCKET_ID:  HEAP_CORRUPTION_80000003_heap_corruption!heap_corruption

Please comment should this one be reopened or new one created?
Comment 16 Noel Grandin 2018-06-18 09:17:27 UTC
@timur that's different please open new bug

@julien I will backport to 6.1
Comment 17 Commit Notification 2018-06-19 18:34:46 UTC
Noel Grandin committed a patch related to this issue.
It has been pushed to "libreoffice-6-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=378f15a48bcb9fc9676644c20541a943efcd5565&h=libreoffice-6-1

tdf#94792 performance regression for xlsx with chart with >1000 data labels

It will be available in 6.1.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.