Bug 125388 - LibreOffice hangs expanding the filter dropdown list (gtk3)
Summary: LibreOffice hangs expanding the filter dropdown list (gtk3)
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
6.3.0.0.alpha0+
Hardware: All All
: high major
Assignee: Caolán McNamara
URL:
Whiteboard: target:6.3.0
Keywords: bibisected, bisected, perf, regression
Depends on:
Blocks: GTK3
  Show dependency treegraph
 
Reported: 2019-05-20 11:25 UTC by Xisco Faulí
Modified: 2019-05-27 12:31 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
sample document (6.61 MB, application/vnd.oasis.opendocument.spreadsheet)
2019-05-20 11:25 UTC, Xisco Faulí
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Xisco Faulí 2019-05-20 11:25:40 UTC
Created attachment 151532 [details]
sample document

Steps to reproduce:
1. Open attached document
2. Select All
3. Go to Data - More Filters - Standard Filter
4. Select Column A in Field Name
5. Expand value's dropdown list

-> LibreOffice hangs

Reproduced in

Version: 6.3.0.0.alpha1+
Build ID: 9c7fac47aacb0877c7d212217089a680400c1377
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

but not in

Version: 6.3.0.0.alpha1+
Build ID: 9c7fac47aacb0877c7d212217089a680400c1377
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk2; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded
Comment 1 Xisco Faulí 2019-05-20 11:34:37 UTC
Regression introduced by:

https://cgit.freedesktop.org/libreoffice/core/commit/?id=59d1d9e661ee4a805ee280d7afab51a52bb11ed3

author	Caolán McNamara <caolanm@redhat.com>	2019-04-15 20:49:03 +0100
committer	Caolán McNamara <caolanm@redhat.com>	2019-04-16 22:20:17 +0200
commit	59d1d9e661ee4a805ee280d7afab51a52bb11ed3 (patch)
tree	ff4f8cf1a798a1d7c88373529c5d632ceea913c5
parent	e1eaed63d03c3a5fa31722072d6f7c4478f1342b (diff)
weld ScFilterDlg

Bisected with: bibisect-linux64-6.3

Adding Cc: to Caolán McNamara
Comment 2 Caolán McNamara 2019-05-22 09:58:48 UTC
The super slow part of this is area_apply_attributes_cb in gtk's gtktreemenu.c which is called on each row, and for each row gtk_tree_menu_get_path_item is called and that loops through the full list of widgets in the menu looking for the row, so it slows to uselessness
Comment 3 Commit Notification 2019-05-23 08:11:55 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/+/237a656db82951e06f8a34e6ca2c1e50f24eb508%5E%21

tdf#125388 disable gtk callback that makes long combobox menus unusable

It will be available in 6.3.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 4 Caolán McNamara 2019-05-23 10:10:34 UTC
That brings it from hangs and ~never appears, to appears after a pause
Comment 5 Xisco Faulí 2019-05-27 12:31:53 UTC
Verified in

Version: 6.3.0.0.alpha1+
Build ID: 53325b40b557cc84d8d21c1baa0ef8d3bfc00ab8
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3; 
Locale: ca-ES (ca_ES.UTF-8); UI-Language: en-US
Calc: threaded

@Caolán, thanks for fixing this issue!!