Bug 160596 - [EDITING] "Not responding" message displayed by Calc on large array selection that has conditional formatting
Summary: [EDITING] "Not responding" message displayed by Calc on large array selection...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
7.5.0.3 release
Hardware: x86-64 (AMD64) All
: medium major
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: needsDevEval, perf
Depends on:
Blocks: Conditional-Formatting Cell-Selection
  Show dependency treegraph
 
Reported: 2024-04-09 10:04 UTC by emmanuel.blanchard
Modified: 2024-04-19 09:24 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
file with large array to reproduce crash (2.98 MB, application/vnd.oasis.opendocument.spreadsheet)
2024-04-09 10:19 UTC, emmanuel.blanchard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description emmanuel.blanchard 2024-04-09 10:04:41 UTC
Description:
When I select a large array (about 70 colons and 11000 lines with data) the not responding message is displayed on top of the window. If I do anything else, like a click on a menu item, Libreoffice crash.
I'm doing this selection with keyboard (CTRL+SHIFT+arrows).

Steps to Reproduce:
1.Open a file with very large array issued from opendata
2.Select the array with CTRL+SHIFT+right arrow and CTRL+SHIFT+bottom arrow
3.Click everywhere

Actual Results:
Crash

Expected Results:
not crash


Reproducible: Always


User Profile Reset: No

Additional Info:
nothing else
Comment 1 emmanuel.blanchard 2024-04-09 10:19:43 UTC
Created attachment 193582 [details]
file with large array to reproduce crash
Comment 2 m_a_riosv 2024-04-09 11:37:42 UTC
It's about 50 seconds of waiting, not a crash, that it's related to the conditional formatting.
The "SUBTOTAL" function is forced to calculate 637305 times.
Using the "AGGREGATE" function instead of "SUBTOTAL" does not improve it.
It's really fast with: ISEVEN(ROW())
I know it's not perfect, but maybe it's not so important in such a large amount of data.

I don't know if an improvement could be made for a specific case like this, making the conditional formatting calculations only for the cells on the screen at the end of the selection.
Comment 3 Stéphane Guillou (stragu) 2024-04-19 04:37:26 UTC
Reproduced with attachment, starting in cell A1, in:

Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: bdf3b5ce49b0e4ee1b4525d344cfb037ef473059
CPU threads: 8; OS: Linux 6.5; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: CL threaded

LO is completely unusable for a long time.
Indeed, without the conditional formatting (can be deleted with Format > Conditional > Manage), no freeze.

In 7.4.0.3, unbearably slow to "adapt row height" on fileopen, I assume before the fix for bug 124098 -> marking 7.5 as earliest affected.

Setting severity to "major" because of very long freeze.