| Summary: | Crash when asking subtotals on 2 groups with pre-sort area checked | ||
|---|---|---|---|
| Product: | LibreOffice | Reporter: | raal <raal> |
| Component: | Calc | Assignee: | Eike Rathke <erack> |
| Status: | VERIFIED FIXED | ||
| Severity: | critical | CC: | aghanmi, raal, realitix, serval2412, xiscofauli |
| Priority: | highest | Keywords: | bibisected, haveBacktrace, needsUXEval, regression |
| Version: | 6.0.0.0.alpha0+ | ||
| Hardware: | All | ||
| OS: | All | ||
| See Also: | https://bugs.documentfoundation.org/show_bug.cgi?id=114720 | ||
| Whiteboard: | target:6.1.0 target:6.0.4 | ||
| Crash report or crash signature: | ["ScTable::DoSubTotals(ScSubTotalParam &)"] | Regression By: | |
| Attachments: | gdb backtrace | ||
|
Description
raal
2018-02-25 10:45:47 UTC
Reproduced in Version: 6.1.0.0.alpha0+ Build ID: ddbb78caa78085673b07dbea6f53288ec6237764 CPU threads: 4; OS: Linux 4.13; UI render: default; VCL: gtk3; Locale: ca-ES (ca_ES.UTF-8); Calc: group but not in Version: 6.0.0.0.alpha0+ Build ID: 65ea925d173db0f319a8ca78855587d089e5270d CPU threads: 4; OS: Linux 4.13; UI render: default; VCL: gtk3; Locale: ca-ES (ca_ES.UTF-8); Calc: group which is the commit before author Jean-Sebastien Bevilacqua <jsbevilacqua@linagora.com> 2017-09-07 11:15:21 +0200 committer Eike Rathke <erack@redhat.com> 2017-09-13 19:03:10 +0200 commit e8d370e84af5dc9b8817cbf5aa66e50db150a0c6 (patch) tree ce0b15bc72893674f082c047cdff78a25a767532 parent 65ea925d173db0f319a8ca78855587d089e5270d (diff) tdf#107267: Fix grand total calculation To fix the grand total calculation, we add another step. This step loop through all row to find the min and max of each value. These min and max are then used by the grand total. @Jean-Sebastien Bevilacqua, @Ahmed GHANMI, is it related to e8d370e84af5dc9b8817cbf5aa66e50db150a0c6? Could you please take a look ? Created attachment 140130 [details]
gdb backtrace
On pc Debian x86-64 with master sources updated today, I could reproduce this.
Here are some gdb traces:
(gdb) frame 0
#0 0x00007fffc78c11ec in ScTable::DoSubTotals (this=0x555557a1bf50, rParam=...) at /home/julien/lo/libreoffice/sc/source/core/data/table3.cxx:2215
2215 label += ScGlobal::GetRscString(lcl_GetSubTotalStrId(eResFunc[0]));
(gdb) p rParam
$1 = (ScSubTotalParam &) @0x7fffffff1320: {nCol1 = 0, nRow1 = 0, nCol2 = 6, nRow2 = 35, nUserIndex = 0, bRemoveOnly = false, bReplace = true, bPagebreak = false,
bCaseSens = false, bDoSort = true, bAscending = true, bUserDef = false, bIncludePattern = false, bGroupActive = {true, true, false}, nField = {6, 0, 0}, nSubTotals = {0, 1,
0}, pSubTotals = {0x0, 0x555557b4acc0, 0x0}, pFunctions = {0x0, 0x55555cad1290, 0x0}}
(gdb) p eResFunc
$2 = (ScSubTotalFunc *) 0x0
(gdb) p rParam.pFunctions
$3 = {0x0, 0x55555cad1290, 0x0}
(gdb) p rParam.pFunctions[1]
$4 = (ScSubTotalFunc *) 0x55555cad1290
(gdb) p *rParam.pFunctions[1]
$5 = SUBTOTAL_FUNC_SUM
(gdb) p aRowEntry
$6 = {nGroupNo = 0, nSubStartRow = 1, nDestRow = 44, nFuncStart = 1, nFuncEnd = 42}
(gdb) p aRowVector
$7 = std::__debug::vector of length 9, capacity 16 = {{nGroupNo = 1, nSubStartRow = 1, nDestRow = 7, nFuncStart = 1, nFuncEnd = 6}, {nGroupNo = 1, nSubStartRow = 8,
nDestRow = 17, nFuncStart = 8, nFuncEnd = 16}, {nGroupNo = 1, nSubStartRow = 18, nDestRow = 21, nFuncStart = 18, nFuncEnd = 20}, {nGroupNo = 1, nSubStartRow = 22,
nDestRow = 25, nFuncStart = 22, nFuncEnd = 24}, {nGroupNo = 1, nSubStartRow = 26, nDestRow = 33, nFuncStart = 26, nFuncEnd = 32}, {nGroupNo = 1, nSubStartRow = 34,
nDestRow = 40, nFuncStart = 34, nFuncEnd = 39}, {nGroupNo = 1, nSubStartRow = 41, nDestRow = 42, nFuncStart = 41, nFuncEnd = 41}, {nGroupNo = 1, nSubStartRow = 1,
nDestRow = 43, nFuncStart = 1, nFuncEnd = 41}, {nGroupNo = 0, nSubStartRow = 1, nDestRow = 44, nFuncStart = 1, nFuncEnd = 42}}
(gdb) p nLevelCount
$8 = 2
Any news here for the ESC ? =) None yet... I just asked Ahmed to work on it. Any progress on this? Or should I take over? No indication of activity => taking over. Eike Rathke committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=f50e370db8f7ae20b12e312ad89a0f9961b7ee7a Resolves: tdf#116003 check presence of subtotal in group, tdf#107267 follow-up It will be available in 6.1.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. Pending review https://gerrit.libreoffice.org/52989 for 6-0 Eike Rathke committed a patch related to this issue. It has been pushed to "libreoffice-6-0": http://cgit.freedesktop.org/libreoffice/core/commit/?id=4b48a0b49de597fc9e9abb012fb31b6fedfee85b&h=libreoffice-6-0 Resolves: tdf#116003 check presence of subtotal in group, tdf#107267 follow-up It will be available in 6.0.4. 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. Verified in Version: 6.1.0.0.alpha0+ Build ID: b07e8a7e16ba69e822a309ec280d1987f90021a3 CPU threads: 4; OS: Linux 4.13; UI render: default; VCL: gtk3; Locale: ca-ES (ca_ES.UTF-8); Calc: group Eike, thanks for fixing this!! |