Bug 157726 - Making a Base report with chart generates "General error"
Summary: Making a Base report with chart generates "General error"
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
7.6.2.1 release
Hardware: All Linux (All)
: medium normal
Assignee: Caolán McNamara
URL:
Whiteboard: target:24.2.0 target:7.6.3
Keywords: bibisected, bisected, regression
Depends on:
Blocks:
 
Reported: 2023-10-12 15:04 UTC by Vincent Bamps
Modified: 2023-10-17 14:43 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments
Open the file. Open report Report_Integer_Temperature. (114.37 KB, application/vnd.oasis.opendocument.database)
2023-10-12 17:10 UTC, Robert Großkopf
Details
basebug.odb with report "R_Responses" causing a "General Error" (60.39 KB, application/vnd.oasis.opendocument.database)
2023-10-13 07:55 UTC, Vincent Bamps
Details
bt with debug symbols (20.29 KB, text/plain)
2023-10-16 19:14 UTC, Julien Nabet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vincent Bamps 2023-10-12 15:04:29 UTC
Description:
Reports in Base containing charts that worked previously are no longer working with the latest release of LibreOffice.
The report can be designed, but when saved and reopened it generates a  "General Error" with no further explanations.

Steps to Reproduce:
1. Design the report with a pie chart based on a View
2. Save the report
3. Open the report

Actual Results:
Generates a "General Error"

Expected Results:
Open the report and displays the pie-chart.


Reproducible: Always


User Profile Reset: No

Additional Info:
Open the report and displays the pie-chart.
Comment 1 raal 2023-10-12 16:44:53 UTC
Hello, can you attach test file?
Comment 2 Robert Großkopf 2023-10-12 17:10:43 UTC
Created attachment 190170 [details]
Open the file. Open report Report_Integer_Temperature.

All reports in the attached database contain charts. Some charts won't be shown with values since a long time - another bug, reported already.
Report "Report_Integer_Temperature" could be opened without any problem and will show the right content in 
LO Version: 7.4.7.2 / LibreOffice Community
Build ID: 723314e595e8007d3cf785c16538505a1c878ca5
CPU threads: 6; OS: Linux 5.14; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Calc: threaded

Also works in LO 7.5.5.2, 7.6.0.3 and 7.6.1.2 on the same system.

Fails with message "General error" on 
Version: 7.6.2.1 (X86_64) / LibreOffice Community
Build ID: 56f7684011345957bbf33a7ee678afaf4d2ba333
CPU threads: 6; OS: Linux 5.14; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: en-US
Calc: threaded

So a new bug introduced with LO 7.6.2.1
Comment 3 raal 2023-10-12 17:41:50 UTC
This seems to have begun at the below commit in bibisect repository/OS linux-64-7.6.
Adding Cc: to Caolán McNamara ; Could you possibly take a look at this one?
Thanks
 74403ab1476dd549c219bd555ca3320e657d1c5a is the first bad commit
commit 74403ab1476dd549c219bd555ca3320e657d1c5a
Author: Jenkins Build User <tdf@pollux.tdf>
Date:   Thu Sep 7 09:07:42 2023 +0200

    source 125cf1525361c6cd699574f60b4cf12868188568

156598: add referer to ole objects | https://gerrit.libreoffice.org/c/core/+/156598
Comment 4 Vincent Bamps 2023-10-13 07:55:48 UTC
Created attachment 190183 [details]
basebug.odb with report "R_Responses" causing a "General Error"

Herewith the file with the report causing the "General Error" when opening the report "R_Responses"
Comment 5 Julien Nabet 2023-10-15 08:21:03 UTC
On pc Debian x86-64 with master sources updated today, I could reproduce this.

Noticing this on console:
warn:reportdesign:173744:173744:reportdesign/source/filter/xml/xmlfilter.cxx:141:  com.sun.star.xml.sax.SAXParseException message: "[ line 2]: unknown error at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:604"
    wrapped: com.sun.star.lang.IndexOutOfBoundsException message: "Index (0) needs to be a positive integer smaller than the shape count (0)! at /home/julien/lo/libreoffice/svx/source/unodraw/unopage.cxx:356" PublicId:  SystemId:  LineNumber: 2 ColumnNumber: 23966


I tried this patch:
diff --git a/reportdesign/source/core/api/Section.cxx b/reportdesign/source/core/api/Section.cxx
index 1c98d239243f..12568ce7a5e8 100644
--- a/reportdesign/source/core/api/Section.cxx
+++ b/reportdesign/source/core/api/Section.cxx
@@ -457,7 +457,7 @@ sal_Bool SAL_CALL OSection::hasElements(  )
 uno::Any SAL_CALL OSection::getByIndex( ::sal_Int32 Index )
 {
     ::osl::MutexGuard aGuard(m_aMutex);
-    return m_xDrawPage.is() ? m_xDrawPage->getByIndex(Index) : uno::Any();
+    return this->getCount() ? m_xDrawPage->getByIndex(Index) : uno::Any();
 }
 
 // XEnumerationAccess

but now I've got:
#0  0x00007f9da30d8a63 in __gnu_debug::_Safe_sequence_base::_M_detach_all() () at /lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x00007f9c32166255 in __gnu_debug::_Safe_sequence_base::~_Safe_sequence_base() (this=0x55bf36f8bab8) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/debug/safe_base.h:221
#2  0x00007f9c336d7be5 in __gnu_debug::_Safe_sequence<std::__debug::vector<SwXMLTableContext::ColumnWidthInfo, std::allocator<SwXMLTableContext::ColumnWidthInfo> > >::~_Safe_sequence() (this=0x55bf36f8bab8)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/debug/safe_sequence.h:108
#3  0x00007f9c336d7a65 in __gnu_debug::_Safe_container<std::__debug::vector<SwXMLTableContext::ColumnWidthInfo, std::allocator<SwXMLTableContext::ColumnWidthInfo> >, std::allocator<SwXMLTableContext::ColumnWidthInfo>, __gnu_debug::_Safe_sequence, true>::~_Safe_container() (this=0x55bf36f8bab8) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/debug/safe_container.h:41
#4  0x00007f9c336d4a06 in std::__debug::vector<SwXMLTableContext::ColumnWidthInfo, std::allocator<SwXMLTableContext::ColumnWidthInfo> >::~vector() (this=0x55bf36f8bab8)
    at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/debug/vector:230
#5  0x00007f9c336c6525 in SwXMLTableContext::~SwXMLTableContext() (this=0x55bf36f8b8f0) at /home/julien/lo/libreoffice/sw/source/filter/xml/xmltbli.cxx:1290
#6  0x00007f9c336c6589 in SwXMLTableContext::~SwXMLTableContext() (this=0x55bf36f8b8f0) at /home/julien/lo/libreoffice/sw/source/filter/xml/xmltbli.cxx:1281
#7  0x00007f9d964587e2 in SvXMLImportContext::release() (this=0x55bf36f8b8f0) at include/xmloff/xmlictxt.hxx:107
#8  0x00007f9d9663320a in rtl::Reference<SvXMLImportContext>::~Reference() (this=0x7ffd42845050) at include/rtl/ref.hxx:129
#9  0x00007f9d96625607 in SvXMLImport::endFastElement(int) (this=0x55bf3a40cb10, Element=263985) at /home/julien/lo/libreoffice/xmloff/source/core/xmlimp.cxx:892
#10 0x00007f9d98d60d1f in (anonymous namespace)::Entity::endElement() (this=0x55bf36cb8ee0) at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:514
#11 0x00007f9d98d60bf1 in sax_fastparser::FastSaxParserImpl::callbackEndElement() (this=0x55bf3a3c4b10) at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:1331
#12 0x00007f9d98d5cf89 in (anonymous namespace)::call_callbackEndElement(void*, unsigned char const*, unsigned char const*, unsigned char const*) (userData=0x55bf3a3c4b10)
    at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:338
#13 0x00007f9d9b2a0e45 in  () at /lib/x86_64-linux-gnu/libxml2.so.2
#14 0x00007f9d9b2ae379 in  () at /lib/x86_64-linux-gnu/libxml2.so.2
#15 0x00007f9d9b2af62b in xmlParseChunk () at /lib/x86_64-linux-gnu/libxml2.so.2
#16 0x00007f9d98d5b85a in sax_fastparser::FastSaxParserImpl::parse() (this=0x55bf3a3c4b10) at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:1085
#17 0x00007f9d98d5a18a in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x55bf3a3c4b10, rStructSource=...)
    at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:890
#18 0x00007f9d98d62589 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x55bf3a3ff1a0, aInputSource=...)
    at /home/julien/lo/libreoffice/sax/source/fastparser/fastparser.cxx:1470
#19 0x00007f9d96620458 in SvXMLImport::parseStream(com::sun::star::xml::sax::InputSource const&) (this=0x55bf3a40cb10, aInputSource=...) at /home/julien/lo/libreoffice/xmloff/source/core/xmlimp.cxx:531
#20 0x00007f9c33650a15 in (anonymous namespace)::ReadThroughComponent(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, rtl::OUString const&, bool, bool)
    (xInputStream=uno::Reference to (OInputCompStream *) 0x55bf3a40c3c8, xModelComponent=uno::Reference to (SwXTextDocument *) 0x55bf3a34d8e0, rStreamName="styles.xml", rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55bf31d88868, pFilterName=0x7f9c318977fe "com.sun.star.comp.Writer.XMLOasisStylesImporter", rFilterArguments=uno::Sequence of length 5 = {...}, rName="", bMustBeSuccessful=true, bEncrypted=false) at /home/julien/lo/libreoffice/sw/source/filter/xml/swxml.cxx:181
#21 0x00007f9c3364e3ae in (anonymous namespace)::ReadThroughComponent(com::sun::star::uno::Reference<com::sun::star::embed::XStorage> const&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&, char const*, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, char const*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&, rtl::OUString const&, bool)
    (xStorage=uno::Reference to (OStorage *) 0x55bf3a12c9f8, xModelComponent=uno::Reference to (SwXTextDocument *) 0x55bf3a34d8e0, pStreamName=0x7f9c319ba198 "styles.xml", rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55bf31d88868, pFilterName=0x7f9c318977fe "com.sun.star.comp.Writer.XMLOasisStylesImporter", rFilterArguments=uno::Sequence of length 5 = {...}, rName="", bMustBeSuccessful=true) at /home/julien/lo/libreoffice/sw/source/filter/xml/swxml.cxx:323
#22 0x00007f9c3364c6f7 in XMLReader::Read(SwDoc&, rtl::OUString const&, SwPaM&, rtl::OUString const&)
    (this=0x55bf33919bf0, rDoc=..., rBaseURL="file:///tmp/lu636tj.tmp/Report_Date_Temperature.odt", rPaM=SwPaM = {...}, rName="") at /home/julien/lo/libreoffice/sw/source/filter/xml/swxml.cxx:826
#23 0x00007f9c334800a1 in SwReader::Read(Reader const&) (this=0x7ffd42849128, rOptions=...) at /home/julien/lo/libreoffice/sw/source/filter/basflt/shellio.cxx:204
#24 0x00007f9c33747daa in SwDocShell::Load(SfxMedium&) (this=0x55bf374eeaa0, rMedium=...) at /home/julien/lo/libreoffice/sw/source/uibase/app/docshini.cxx:534
#25 0x00007f9d9f974411 in SfxObjectShell::LoadOwnFormat(SfxMedium&) (this=0x55bf374eeaa0, rMedium=...) at /home/julien/lo/libreoffice/sfx2/source/doc/objstor.cxx:3194
#26 0x00007f9d9f9757e6 in SfxObjectShell::DoLoad(SfxMedium*) (this=0x55bf374eeaa0, pMed=0x55bf3a3522e0) at /home/julien/lo/libreoffice/sfx2/source/doc/objstor.cxx:682
#27 0x00007f9d9f9eadc3 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (this=0x55bf3a34d850, seqArguments=uno::Sequence of length 16 = {...})
    at /home/julien/lo/libreoffice/sfx2/source/doc/sfxbasemodel.cxx:1966
#28 0x00007f9d9fb9117e in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) (this=0x55bf346815b0, rArgs=uno::Sequence of length 12 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x55bf374b96d0)
    at /home/julien/lo/libreoffice/sfx2/source/view/frmload.cxx:720

retrieved with gdb, of course after all the:
Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
0x00007f9d08950511 in ?? ()

With another build I got which doesn't use "enable-dbgutil", the first patch is sufficient to open the report (still always without the graph).
Comment 6 Julien Nabet 2023-10-15 12:34:48 UTC
(In reply to raal from comment #3)
> This seems to have begun at the below commit in bibisect repository/OS
> linux-64-7.6.
> Adding Cc: to Caolán McNamara ; Could you possibly take a look at this one?
> Thanks
>  74403ab1476dd549c219bd555ca3320e657d1c5a is the first bad commit
> commit 74403ab1476dd549c219bd555ca3320e657d1c5a
> Author: Jenkins Build User <tdf@pollux.tdf>
> Date:   Thu Sep 7 09:07:42 2023 +0200
> 
>     source 125cf1525361c6cd699574f60b4cf12868188568
> 
> 156598: add referer to ole objects |
> https://gerrit.libreoffice.org/c/core/+/156598

Just for the record, I could reproduce the pb even with this commit reverted locally. (I had to fix merge conflict with std::span instead of o3tl::span + did a make postprocess and used a brand new LO profile).
Comment 7 Caolán McNamara 2023-10-16 11:20:43 UTC
I think in trunk we have two errors, and in 7-6 we have one. The trunk-only one might be addressed by https://gerrit.libreoffice.org/c/core/+/158026 while the 7-6 problem is the bisected issue
Comment 8 Commit Notification 2023-10-16 15:16:24 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/1bdd38f6a86cebfa9d40e0a0136c1a9066c90661

Resolves: tdf#157726 missing chart from Base report

It will be available in 24.2.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 9 Commit Notification 2023-10-16 15:21:27 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/878c2da6d2d5576d6c3266b38eae4ac80bcbe2c1

Related: tdf#157726 restore try/catch block

It will be available in 24.2.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 Caolán McNamara 2023-10-16 15:22:12 UTC
works in trunk now, backport to 7-6 in gerrit
Comment 11 Commit Notification 2023-10-16 15:34:31 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

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

Resolves: tdf#157726 missing chart from Base report

It will be available in 7.6.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.
Comment 12 Julien Nabet 2023-10-16 19:14:04 UTC
Created attachment 190245 [details]
bt with debug symbols

On pc Debian x86-64 with master sources updated today (2b8b6ced7c67e6a56f06b02e92f0555a796f3b16) so with the fix, I got now a crash.
(I used a brand new LO profile).
Should I submit a new bugtracker?

autogen.input:

      1 CC=clang
      2 CXX=clang++
      3 --enable-ld=lld
      4 #--with-webdav=curl
      5 --enable-online-update
      6 --with-privacy-policy-url=https://yourdomain/privacy-policy
      7 --enable-dbgutil
      8 --enable-evolution2
      9 --enable-gtk4
     10 --enable-qt5
     11 --enable-kf5
     12 --enable-gtk3-kde5
     13 # pour tester build rpm format
     14 --enable-skia=debug
     15 --enable-ext-nlpsolver
     16 --enable-ext-numbertext
     17 --enable-ext-wiki-publisher
     18 --enable-dbus
     19 --enable-werror
     20 --enable-dependency-tracking
     21 --enable-python=fully-internal
     22 --without-system-mariadb
     23 --enable-bundle-mariadb
     24 --enable-symbols
     25 --enable-avahi
     26 --enable-eot
     27 --enable-odk
     28 --with-lang=en-US de es fr hu it ja nl pt pt-BR ru
     29 #--with-lang=ALL
     30 --with-myspell-dicts
     31 #--with-help

Debian clang version 16.0.6 (15)
ldd (Debian GLIBC 2.37-12) 2.37
Comment 13 Julien Nabet 2023-10-16 19:19:28 UTC
I also tested gen and kf5 renderings, idem, so not gtk specific.
Comment 14 Commit Notification 2023-10-17 14:43:08 UTC
Julien Nabet committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/0875594b381e2765f2b6413074c470f9eec33201

Related tdf#157726: make iterators local to loops

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