Bug 150766 - Incomplete recalculate
Summary: Incomplete recalculate
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
4.4.0.3 release
Hardware: All All
: high normal
Assignee: Eike Rathke
URL:
Whiteboard: target:7.5.0 target:7.3.7 target:7.4.2
Keywords: bibisected, bisected, regression
Depends on:
Blocks:
 
Reported: 2022-09-03 12:11 UTC by jeanmarcranger
Modified: 2022-09-13 09:13 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
bug example (10.51 KB, application/vnd.oasis.opendocument.spreadsheet)
2022-09-03 12:13 UTC, jeanmarcranger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description jeanmarcranger 2022-09-03 12:11:46 UTC
Description:
With the steps specified below, cal fails to properly recalculate.

The demo sheet will be provided, but here are the steps to create it:
- column a: sequential numbers from 1 to 9, but swap 4 and 5 (1,2,3,5,4,6,7,8,9)
- b1: 1
- c1: =sum(b$1:b1)
- copy b1:c1 to b2:c9

Steps to Reproduce:
1. Select rows 3 to 6
2. Data -> Sort ascending. The sort completes as expected
3. Change b4 from 1 to 10


Actual Results:
c1:c6 contains correct values. c7:c9 don't
Forcing a recalculate (F9) don't resolve the situation.
Forcing a hard recalculate (ctrl-shift-F9) resolves it.

Expected Results:
Correct auto-recalculation of all cells.


Reproducible: Always


User Profile Reset: No



Additional Info:
Initially observed on the version provided by linux/debian.
Formally tested on Windows 10 in safe mode, after deleting the LibreOffice folder in appdata/roaming.
No idea if OpenGL is enabled.

Info from help-about:
Version: 7.4.0.3 (x64) / LibreOffice Community
Build ID: f85e47c08ddd19c015c0114a68350214f7066f5a
CPU threads: 4; OS: Windows 10.0 Build 19044; UI render: default; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: threaded
Comment 1 jeanmarcranger 2022-09-03 12:13:01 UTC
Created attachment 182186 [details]
bug example
Comment 2 m_a_riosv 2022-09-03 21:22:32 UTC
I happens also with
Version: 7.5.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 21229c2f45f96a8ee3060acb3296be77be3a9f1a
CPU threads: 4; OS: Windows 10.0 Build 19044; UI render: Skia/Vulkan; VCL: win
Locale: es-ES (es_ES); UI: en-US Calc: CL threaded
Comment 3 Telesto 2022-09-06 13:00:00 UTC
Repro
Version: 7.1.8.0.0+ (x64) / LibreOffice Community
Build ID: a94b58277c7aeaa83ce14347cd0b8f7137969d03
CPU threads: 4; OS: Windows 6.3 Build 9600; UI render: Skia/Raster; VCL: win
Locale: nl-NL (nl_NL); UI: en-US
Calc: CL

and with
Version: 6.2.9.0.0+ (x86)
Build ID: 5f01fe15eb2661f1f9ce12d1d99dc2a705b462ee
CPU threads: 4; OS: Windows 6.3; UI render: default; VCL: win; 
Locale: nl-NL (nl_NL); UI-Language: en-US
Calc: CL

and with
Version: 6.0.0.0.alpha0+
Build ID: 9127d1a89cbfba89eb9df6755ea7b9e161cfc67a
CPU threads: 4; OS: Windows 6.3; UI render: default; 
Locale: nl-NL (nl_NL); Calc: CL

and with
Versie: 4.4.7.2 
Build ID: f3153a8b245191196a4b6b9abd1d0da16eead600
Locale: nl_NL

ok with
Versie: 4.1.0.4 
Build ID: 89ea49ddacd9aa532507cbf852f2bb22b1ace28
Comment 4 Xisco Faulí 2022-09-08 14:13:36 UTC
@Eike, I thought you might be interested in this issue.
Comment 5 Xisco Faulí 2022-09-08 15:09:12 UTC
It started to happen in libreoffice-4.4.0.0.beta1, thus it needs to be bisected with 4.4 repo
Comment 6 jeanmarcranger 2022-09-09 00:18:43 UTC
 d12d1a450eb7599eb60ba605ce7a7e8b12bcb744 is the first bad commit
commit d12d1a450eb7599eb60ba605ce7a7e8b12bcb744
Author: Matthew Francis <mjay.francis@gmail.com>
Date:   Sun Mar 15 06:07:23 2015 +0800

    source-hash-5ef856e975d7c0396984d588a43fd1a7c7085c55
    
    (Bibisect: Skipped preceding irrelevant commit(s) b2efe90c07baa45d2ee7e13138dd306a29738473)
    
    commit 5ef856e975d7c0396984d588a43fd1a7c7085c55
    Author:     Kohei Yoshida <kohei.yoshida@collabora.com>
    AuthorDate: Tue Nov 18 21:03:05 2014 -0500
    Commit:     Kohei Yoshida <kohei.yoshida@collabora.com>
    CommitDate: Tue Nov 18 21:03:50 2014 -0500
    
        Use group area listeners during ODS import.
    
        Change-Id: Id01f9021dda7f33255f8206174cd730507ab55ad

:040000 040000 126e010c62ce770ece406648bd72b0d2505c593f e7bee6d7439acbe7be3fd506baefed81c493b191 M	opt


Bisected using https://bibisect.libreoffice.org/linux-44max.git-bundle
The bisect log isn't "normal" - the very first bisection step was unconclusive, LibreOffice consistently crashed on the sort step, so I kickstarted it testing a random point.

# bad: [cf6ea17155fabb2a120ba07c150735591ac861d7] source-hash-3f94c9e9ddfd807b449f3bb9b232cf2041fa12d2
# good: [fc71ac001f16209654d15ef8c1c4018aa55769f5] source-hash-c15927f20d4727c3b8de68497b6949e72f9e6e9e
git bisect start 'latest' 'oldest'
# skip: [8cf60cc706948588e2f33a6d98b7c55d454e362a] source-hash-f340f0454627939f1830826fb5cc53a90e6c62a4
git bisect skip 8cf60cc706948588e2f33a6d98b7c55d454e362a
# good: [2d15a9a7574c794c9dc50f5ff4cd5ed4464fde70] source-hash-a6fc653bbf38de453a540ca2ab69958dafa1d322
git bisect good 2d15a9a7574c794c9dc50f5ff4cd5ed4464fde70
# good: [9a82af5ef45cf613dfab0f6e979d404b717018f9] source-hash-96d091d43428472c2c68054ed5dca22f79adc705
git bisect good 9a82af5ef45cf613dfab0f6e979d404b717018f9
# good: [4f7b9e3948b9f7b42c81f5c1293aa73491001c93] source-hash-fa430e6b4e6f5d096bdf59db26e5d7393ca2297b
git bisect good 4f7b9e3948b9f7b42c81f5c1293aa73491001c93
# good: [0fbc26d3c8e7c48fb6d13aa99006f355601b5f7d] source-hash-9313095ea2d5f3dcc531d658e159e16ac2cb44fd
git bisect good 0fbc26d3c8e7c48fb6d13aa99006f355601b5f7d
# good: [8fbd6faad6cc859f6f2ab984a031b818d9471140] source-hash-65f41639e219470c80f896129731f9ed6f072b6b
git bisect good 8fbd6faad6cc859f6f2ab984a031b818d9471140
# good: [e076716822b668af0bd9f480a6f67336e0d1591b] source-hash-dbdacc73ae154237314d599194cc686bd738a9bf
git bisect good e076716822b668af0bd9f480a6f67336e0d1591b
# bad: [40de7a9096dba2cd21825772dc4fd776c6f7fdaa] source-hash-78ac39dcef36b3881b2574b2db1e0d5a068c7804
git bisect bad 40de7a9096dba2cd21825772dc4fd776c6f7fdaa
# bad: [57ed981e95cf3b915ed02bd1f8d2a9ecf618351c] source-hash-f857358d83e7c105271eb0e2c43f0b036f14f284
git bisect bad 57ed981e95cf3b915ed02bd1f8d2a9ecf618351c
# good: [8a43f1c48415bd9e44ad81ca13c31ca39d3b15e9] source-hash-a55adb16ece70360c88342ca008d5a9d5b9d5b52
git bisect good 8a43f1c48415bd9e44ad81ca13c31ca39d3b15e9
# bad: [7c712fe89744ed1190bcee076bdbf81d40f1dc85] source-hash-3f4896bcfe21794239f8ec32f8f6d7e438a7907e
git bisect bad 7c712fe89744ed1190bcee076bdbf81d40f1dc85
# good: [ad806e9b6fa58c2589859cb3c55511235f2c534f] source-hash-1296f9063203a3f9488689136b833568c183edab
git bisect good ad806e9b6fa58c2589859cb3c55511235f2c534f
# bad: [52dc3a6032f416dfe4a7182adc1d187ffcd9af24] source-hash-764600bc6175a32d119487afda2e8409f3395666
git bisect bad 52dc3a6032f416dfe4a7182adc1d187ffcd9af24
# bad: [6ca58fb62944a6ef674e4630740673971334f424] source-hash-1b9aaba0bfe8bc0872e7ea9f9aef5961e4b52f7c
git bisect bad 6ca58fb62944a6ef674e4630740673971334f424
# bad: [d12d1a450eb7599eb60ba605ce7a7e8b12bcb744] source-hash-5ef856e975d7c0396984d588a43fd1a7c7085c55
git bisect bad d12d1a450eb7599eb60ba605ce7a7e8b12bcb744
# first bad commit: [d12d1a450eb7599eb60ba605ce7a7e8b12bcb744] source-hash-5ef856e975d7c0396984d588a43fd1a7c7085c55
Comment 7 Timur 2022-09-09 07:59:29 UTC
Thanks for bibisect, it's correct, some remarks:

1. instructions for bibisect advise to paste in bug the full log, but I don't see it necessary
2. more important is to check result with found and previous binary commit
3. what you get in older repos is not a single result, but a range of source commits from previous to found binary commit
Here, it's just 2 source commits so that one is probably correct (so I add bisected).
https://cgit.freedesktop.org/libreoffice/core/log/?qt=range&q=1296f9063203a3f9488689136b833568c183edab..5ef856e975d7c0396984d588a43fd1a7c7085c55
4. then we check is source commit is already in some comments, this one is but all are bugs fixed by Kohei and mostly Eike: bug 86615, bug 97897, bug 121043, bug 119623.
5. finally  may check if dev is active: https://cgit.freedesktop.org/libreoffice/core/log/&qt=author&q=Kohei+Yoshida
Kohei is active sometimes, so I add him here to see this. I hope that kohei@libreoffice.org is the right address, there's also another one.
Comment 8 Eike Rathke 2022-09-09 16:55:38 UTC
Taking.
Comment 9 Commit Notification 2022-09-10 10:40:50 UTC
Eike Rathke committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/569d451bbe160829947ace201d07ad69442204b0

Resolves: tdf#150766 Listen to entire shared formula group instead of a slice

It will be available in 7.5.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 Eike Rathke 2022-09-10 10:47:33 UTC
Pending review
https://gerrit.libreoffice.org/c/core/+/139662 for 7-4
https://gerrit.libreoffice.org/c/core/+/139663 for 7-3
Comment 11 Telesto 2022-09-10 12:24:50 UTC
Will there also be a unit test for this bug?
Comment 12 Telesto 2022-09-10 12:31:17 UTC
@b.
FYI
Comment 13 Xisco Faulí 2022-09-12 08:39:01 UTC
Verified in

Version: 7.5.0.0.alpha0+ / LibreOffice Community
Build ID: 9caf9f8fde68f075a9ae1377bcc0cf6127c1737f
CPU threads: 8; OS: Linux 5.10; UI render: default; VCL: gtk3
Locale: es-ES (es_ES.UTF-8); UI: en-US
Calc: threaded

@Eike, thanks for fixing this issue!!
Comment 14 Commit Notification 2022-09-12 08:39:56 UTC
Eike Rathke committed a patch related to this issue.
It has been pushed to "libreoffice-7-3":

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

Resolves: tdf#150766 Listen to entire shared formula group instead of a slice

It will be available in 7.3.7.

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 15 Commit Notification 2022-09-12 08:40:08 UTC
Eike Rathke committed a patch related to this issue.
It has been pushed to "libreoffice-7-4":

https://git.libreoffice.org/core/commit/23d607b104013e412295ac83956edc74e94ed2df

Resolves: tdf#150766 Listen to entire shared formula group instead of a slice

It will be available in 7.4.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 16 Commit Notification 2022-09-13 09:13:42 UTC
Xisco Fauli committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/907ba54b0d557b89e7e0e6f6eb25470e743c1918

tdf#150766: sc_uicalc: Add unittest

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