Bug 136455 - GTK3: Unable to open Standard Filter in a file with large quantity of data rows
Summary: GTK3: Unable to open Standard Filter in a file with large quantity of data rows
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
6.4.6.2 release
Hardware: All Linux (All)
: medium normal
Assignee: Caolán McNamara
URL:
Whiteboard: target:7.1.0 target:7.0.2 target:7.0.3
Keywords:
Depends on:
Blocks: GTK3
  Show dependency treegraph
 
Reported: 2020-09-04 02:03 UTC by Kevin Suo
Modified: 2020-10-16 09:03 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
test ODS file (375.34 KB, application/vnd.oasis.opendocument.spreadsheet)
2020-09-04 02:05 UTC, Kevin Suo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Suo 2020-09-04 02:03:28 UTC
Description:
The attached ods file contains one simple column with 175,970 rows. It is not possible to open standard filter in this file (very slow?).

Steps to Reproduce:
1. Open the attached ODS file.

2. Put cursor in cell A1, and try to open Standard Filter through "Data > More Filters > Standard Filter", or by clicking on the Standard Filter entry in the autofilter dropdown list. 


Actual Results:
Calc freezes. Not able to open the standard filter. 

Expected Results:
Standard Filter dialog should appear within several seconds.


Reproducible: Always


User Profile Reset: No



Additional Info:
版本: 6.4.6.2
Build ID: 0ce51a4fd21bff07a5c061082cc82c5ed232f115
CPU 线程: 4; 操作系统: Linux 5.7; 界面渲染: 默认; VCL: gtk3; 
区域语言: zh-CN (zh_CN.UTF-8); UI 语言: zh-CN
Calc: threaded

Fedora 32 x64.
Comment 1 Kevin Suo 2020-09-04 02:05:13 UTC
Created attachment 165127 [details]
test ODS file
Comment 2 m.a.riosv 2020-09-04 17:31:19 UTC
Not freezing for me, about eight seconds to open, with:
Version: 6.4.6.2 (x64)
Build ID: 0ce51a4fd21bff07a5c061082cc82c5ed232f115
CPU threads: 4; OS: Windows 10.0 Build 20180; UI render: GL; VCL: win; 
Locale: es-ES (es_ES); UI-Language: en-US Calc: threaded
Comment 3 Kevin Suo 2020-09-05 03:56:09 UTC
This may be a gtk3 only problem as it works OK when I use:
SAL_USE_VCLPLUGIN=gen
Comment 4 Caolán McNamara 2020-09-05 09:17:16 UTC
caolan->kevin: How about in 7.0 ? I replaced the GtkComboBox (bug 131120) in 7.0 due to performance problems.
Comment 5 Kevin Suo 2020-09-06 14:42:23 UTC
(In reply to Caolán McNamara from comment #4)
Same issue on master as of: 2020-09-03 fddbf05d5b9b83863c1bf85e5c9821d87671768e
Comment 6 Caolán McNamara 2020-09-06 19:57:58 UTC
looks like the internal GtkComboBox GtkMenu is listening to the liststore and is slow to add entries, but we (in 7.0) don't use that GtkMenu so its wasted work
Comment 7 Commit Notification 2020-09-07 08:10:45 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/c48b021357f4e657291d12fbaa5a2d1a6471ce9b

tdf#136455 unused ComboBox menu listening to GtkListStore and slowing inserts

It will be available in 7.1.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.
Comment 8 Caolán McNamara 2020-09-07 08:11:22 UTC
that makes a huge difference for me in master, backport to 7-0 in gerrit
Comment 9 Commit Notification 2020-09-07 09:56:40 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/64db723b2047cf566b652c11c94d9d589df0b930

Related: tdf#136455 use insert_vector for bulk insert

It will be available in 7.1.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.
Comment 10 Kevin Suo 2020-09-07 23:44:26 UTC
Is it possible to backport to 6.4?
Comment 11 Caolán McNamara 2020-09-08 09:01:04 UTC
The fundamental problems are those listed in https://git.libreoffice.org/core/+/bc0e0f633b05c4f91b6695488fc9e5c127507ba5%5E%21 and I can't see a way to make it work performant with the stock GtkComboBox only by replacing it, so it would have to be a backport of the replacement, which is pretty invasive, as well as this new piece of the puzzle. So too risky IMO for 6-4. I will get this extra piece into 7-0
Comment 12 Commit Notification 2020-09-08 15:10:47 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-7-0":

https://git.libreoffice.org/core/commit/c16a7e629599086610e00fefadfcfc6367195275

tdf#136455 unused ComboBox menu listening to GtkListStore and slowing inserts

It will be available in 7.0.2.

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.
Comment 13 Commit Notification 2020-10-14 08:03:28 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/231a4e024b85aa0ad06a5632d3f514152babea30

better fix for tdf#136455 without destroying widgets we don't truly own

It will be available in 7.1.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.
Comment 14 Commit Notification 2020-10-16 09:03:29 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-7-0":

https://git.libreoffice.org/core/commit/b0542c740a6f46550e4ad2aced7c1e324eab693a

better fix for tdf#136455 without destroying widgets we don't truly own

It will be available in 7.0.3.

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.