Bug 1127857

Summary: libreoffice fails to build against devel:gcc
Product: [openSUSE] openSUSE Tumbleweed Reporter: Richard Biener <rguenther>
Component: DevelopmentAssignee: Martin Liška <martin.liska>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: martin.liska, mliska
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: All   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Richard Biener 2019-03-05 08:24:03 UTC
gcc8 slated for submission to Factory (SR#679161) fails to build libreoffice.
Local build of Factory status results in

[10399s] [build CUT] sw_uwriter
[10399s] /bin/sh: line 1:  6191 Segmentation fault      ( LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"$I/program:$I/program":$W/UnpackedTarball/cppunit/src/cppunit/.libs MALLOC_CHECK_=2 MALLOC_PERTURB_=153 $W/LinkTarget/Executable/cppunittester $W/LinkTarget/CppunitTest/libtest_sw_uwriter.so --headless "-env:BRAND_BASE_DIR=file://$S/instdir" "-env:BRAND_SHARE_SUBDIR=share" "-env:BRAND_SHARE_RESOURCE_SUBDIR=program/resource" "-env:UserInstallation=file://$W/CppunitTest/sw_uwriter.test.user" "-env:CONFIGURATION_LAYERS=xcsxcu:file://$I/share/registry xcsxcu:file://$W/unittest/registry" "-env:UNO_TYPES=file://$I/program/types.rdb file://$I/program/types/offapi.rdb file://$I/program/types/oovbaapi.rdb" "-env:UNO_SERVICES=file://$W/Rdb/ure/services.rdb file://$W/ComponentTarget/comphelper/util/comphelp.component file://$W/ComponentTarget/configmgr/source/configmgr.component file://$W/ComponentTarget/framework/util/fwk.component file://$W/ComponentTarget/i18npool/util/i18npool.component file://$W/ComponentTarget/package/util/package2.component file://$W/ComponentTarget/package/source/xstor/xstor.component file://$W/ComponentTarget/sfx2/util/sfx.component file://$W/ComponentTarget/ucb/source/core/ucb1.component file://$W/ComponentTarget/ucb/source/ucp/file/ucpfile1.component file://$W/ComponentTarget/unotools/util/utl.component file://$W/ComponentTarget/unoxml/source/service/unoxml.component file://$W/ComponentTarget/uui/util/uui.component" -env:URE_INTERNAL_LIB_DIR=file://$I/program -env:LO_LIB_DIR=file://$I/program -env:LO_JAVA_DIR=file://$I/program/classes --protector $W/LinkTarget/Library/unoexceptionprotector.so unoexceptionprotector --protector $W/LinkTarget/Library/unobootstrapprotector.so unobootstrapprotector --protector $W/LinkTarget/Library/libvclbootstrapprotector.so vclbootstrapprotector "-env:CPPUNITTESTTARGET=$W/CppunitTest/sw_uwriter.test" ) > $W/CppunitTest/sw_uwriter.test.log 2>&1
[10399s] ToxMiscTest::testTdf73162 finished in: 0ms
[10399s] ToxTextGeneratorTest::EmptyStringIsReturnedForPageNumberPlaceholderOfZeroItems finished in: 0ms
[10399s] ToxTextGeneratorTest::OneAtSignIsReturnedForPageNumberPlaceholderOfOneItem finished in: 0ms
[10399s] ToxTextGeneratorTest::TwoAtSignsAreReturnedForPageNumberPlaceholderOfOneItem finished in: 0ms
[10399s] ToxTextGeneratorTest::TwoAtSignsAreReturnedForPageNumberPlaceholderOfOneItem finished in: 0ms
[10399s] ToxTextGeneratorTest::EmptyStringIsReturnedAsNumStringIfNoTextMarkIsSet finished in: 0ms
[10399s] ToxTextGeneratorTest::EmptyStringIsReturnedAsNumStringIfToxSourcesIsEmpty finished in: 0ms
[10399s] which: no gdb in (/usr/local/bin:/usr/bin:/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib64/jvm/java/bin)
[10399s] You need gdb in your path to show backtraces
[10400s]
[10400s] Error: a unit test failed, please do one of:
[10400s]
[10400s] make CppunitTest_sw_uwriter CPPUNITTRACE="gdb --args"
[10400s]     # for interactive debugging on Linux
[10400s] make CppunitTest_sw_uwriter VALGRIND=memcheck
[10400s]     # for memory checking
[10400s] make CppunitTest_sw_uwriter DEBUGCPPUNIT=TRUE
[10400s]     # for exception catching
[10400s]
[10400s] You can limit the execution to just one particular test by:
[10400s]
[10400s] make CPPUNIT_TEST_NAME="testXYZ" ...above mentioned params...
[10400s]
[10400s] make[1]: *** [/home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/solenv/gbuild/CppunitTest.mk:121: /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/workdir/CppunitTest/sw_uwriter.test] Error 1
[10400s] make[1]: *** Waiting for unfinished jobs....
[10425s] In member function '_ZN10ScDPSource17FillMemberResultsEv.part.548',
[10425s]     inlined from 'FillMemberResults' at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1018:6,
[10425s]     inlined from 'getResults' at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1063:22:
[10425s] /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1036:84: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
[10425s]              pColResults.reset(new uno::Sequence<sheet::MemberResult>[nColLevelCount]);
[10425s]                                                                                     ^
[10425s] /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx: In member function 'getResults':
[10425s] /usr/include/c++/8/new:122:7: note: in a call to allocation function 'operator new []' declared here
[10425s]  void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
[10425s]        ^
[10425s] In member function '_ZN10ScDPSource17FillMemberResultsEv.part.548',
[10425s]     inlined from 'FillMemberResults' at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1018:6,
[10425s]     inlined from 'getResults' at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1063:22:
[10425s] /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx:1050:85: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
[10425s]              pRowResults.reset( new uno::Sequence<sheet::MemberResult>[nRowLevelCount] );
[10425s]                                                                                      ^
[10425s] /home/abuild/rpmbuild/BUILD/libreoffice-6.2.0.3/sc/source/core/data/dptabsrc.cxx: In member function 'getResults':
[10425s] /usr/include/c++/8/new:122:7: note: in a call to allocation function 'operator new []' declared here
[10425s]  void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
[10425s]        ^
[10425s] make: *** [Makefile:286: build] Error 2
[10425s] error: Bad exit status from /var/tmp/rpm-tmp.veZtng (%check)
[10425s]
[10425s]
[10425s] RPM build errors:
[10425s]     Macro expanded in comment on line 23: %define tarball_url https://download.documentfoundation.org/libreoffice/src/6.1.0
[10425s]
[10425s]     Bad exit status from /var/tmp/rpm-tmp.veZtng (%check)
[10425s]
[10425s] murzim failed "build libreoffice.spec" at Mon Mar  4 16:22:26 UTC 2019.
[10425s]


I'm not sure whether the interleaved compiler warnings/notes have anything
to say or whether just the segmentation fault is the issue (I think that's it).
gdb is not in BuildRequires so we don't get a meaningful backtrace.
Comment 1 Richard Biener 2019-03-05 08:27:46 UTC
I have now backported https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89505 just in case and will update devel:gcc with it.
Comment 2 Martin Liška 2019-03-05 12:07:43 UTC
Lemme debug that.
Comment 3 Martin Liška 2019-03-06 13:11:17 UTC
Hm, started with:

commit 2a5ec34a971d5f52b47f80c2b45fc671d41255ac
Author: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Sun Feb 10 12:55:24 2019 +0000

            Backport from mainline:
            2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
    
            PR tree-opt/86020
            Revert:
            2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
    
            * ipa-inline.c (edge_badness): Use inlined_time instead of
            inline_summaries->get.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@268745 138bc75d-0d04-0410-961f-82ee72b054a4

that's a revision I'm not happy about :/

I'll try reproduce that locally and debug..
Comment 4 Martin Liška 2019-03-06 15:16:04 UTC
More beautiful backtrace:

[ 2312s] Program terminated with signal SIGSEGV, Segmentation fault.
[ 2312s] #0  0x00007ffabac99821 in SfxModule::GetResLocale() const () from /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libmergedlo.so
[ 2312s] warning: File "/home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libuno_sal.so.3-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
[ 2312s] To enable execution of this file add
[ 2312s]        add-auto-load-safe-path /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libuno_sal.so.3-gdb.py
[ 2312s] line to your configuration file "/home/abuild/.gdbinit".
[ 2312s] To completely disable this security protection add
[ 2312s]        set auto-load safe-path /
[ 2312s] line to your configuration file "/home/abuild/.gdbinit".
[ 2312s] For more information about this security protection see the
[ 2312s] "Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
[ 2312s]        info "(gdb)Auto-loading safe path"
[ 2312s] warning: File "/usr/lib64/libstdc++.so.6.0.25-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
[ 2312s] warning: File "/home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libuno_cppu.so.3-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
[ 2312s] warning: File "/home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libmergedlo.so-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
[ 2312s] rax            0xf6acc8            16166088
[ 2312s] rbx            0x7ffea4191580      140731651528064
[ 2312s] rcx            0x1                 1
[ 2312s] rdx            0x1b23290           28455568
[ 2312s] rsi            0x0                 0
[ 2312s] rdi            0x1b2a3c8           28484552
[ 2312s] rbp            0x7ffea41915c0      0x7ffea41915c0
[ 2312s] rsp            0x7ffea4191580      0x7ffea4191580
[ 2312s] r8             0x0                 0
[ 2312s] r9             0x1b26b08           28470024
[ 2312s] r10            0x367b13            3570451
[ 2312s] r11            0x7ffabc561c40      140714878311488
[ 2312s] r12            0x0                 0
[ 2312s] r13            0x7ffab5859f40      140714763984704
[ 2312s] r14            0x7ffea4191cc0      140731651529920
[ 2312s] r15            0x7ffea4191740      140731651528512
[ 2312s] rip            0x7ffabac99821      0x7ffabac99821 <SfxModule::GetResLocale() const+49>
[ 2312s] eflags         0x10202             [ IF RF ]
[ 2312s] cs             0x33                51
[ 2312s] ss             0x2b                43
[ 2312s] ds             0x0                 0
[ 2312s] es             0x0                 0
[ 2312s] fs             0x0                 0
[ 2312s] gs             0x0                 0
[ 2312s] 
[ 2312s] Thread 1 (Thread 0x7ffabc36b740 (LWP 65753)):
[ 2312s] #0  0x00007ffabac99821 in SfxModule::GetResLocale() const () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/instdir/program/libmergedlo.so
[ 2312s] #1  0x00007ffab4e2c356 in SwResId(char const*) () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/workdir/LinkTarget/CppunitTest/libtest_sw_uwriter.so
[ 2312s] #2  0x00007ffab5162c5c in SwForm::SwForm(TOXTypes) () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/workdir/LinkTarget/CppunitTest/libtest_sw_uwriter.so
[ 2312s] #3  0x00007ffab552b7e9 in ToxTextGeneratorTest::ChapterNumberWithoutTextIsGeneratedForNoprepstTitle() () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/workdir/LinkTarget/CppunitTest/libtest_sw_uwriter.so
[ 2312s] #4  0x00007ffabcace4b2 in CppUnit::TestCaseMethodFunctor::operator()() const () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #5  0x00007ffabcaf9a03 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/workdir/LinkTarget/Library/unoexceptionprotector.so
[ 2312s] #6  0x00007ffabcac5e91 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #7  0x00007ffabcacbfa5 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #8  0x00007ffabcad3bc9 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #9  0x00007ffabcace315 in CppUnit::TestCase::run(CppUnit::TestResult*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #10 0x00007ffabcace7c3 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #11 0x00007ffabcace6ce in CppUnit::TestComposite::run(CppUnit::TestResult*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #12 0x00007ffabcace7c3 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #13 0x00007ffabcace6ce in CppUnit::TestComposite::run(CppUnit::TestResult*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #14 0x00007ffabcad3b02 in CppUnit::TestResult::runTest(CppUnit::Test*) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #15 0x00007ffabcad60ee in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib64/libcppunit-1.14.so.0
[ 2312s] #16 0x0000000000406d62 in (anonymous namespace)::ProtectedFixtureFunctor::run() const ()
[ 2312s] #17 0x0000000000407e72 in sal_main() ()
[ 2312s] #18 0x0000000000403fbb in main ()
Comment 5 Martin Liška 2019-03-06 21:06:47 UTC
I've got a patch for it:

diff --git a/sw/qa/core/test_ToxTextGenerator.cxx b/sw/qa/core/test_ToxTextGenerator.cxx
index 25304a382ed3..ffe76233282e 100644
--- a/sw/qa/core/test_ToxTextGenerator.cxx
+++ b/sw/qa/core/test_ToxTextGenerator.cxx
@@ -22,10 +22,17 @@
 #include <cppunit/extensions/HelperMacros.h>
 #include <cppunit/plugin/TestPlugIn.h>
 
+#include <swdll.hxx>
+
 using namespace sw;
 
 class ToxTextGeneratorTest : public CppUnit::TestFixture {
 public:
+    virtual void setUp() override
+    {
+        SwGlobals::ensure();
+    }
+
     void EmptyStringIsReturnedForPageNumberPlaceholderOfZeroItems();
     void OneAtSignIsReturnedForPageNumberPlaceholderOfOneItem();
     void TwoAtSignsAreReturnedForPageNumberPlaceholderOfOneItem();

Problem is quite simple that SfxApplication::GetModule returns null because:
sw/source/uibase/app/swdll.cxx:    SfxApplication::SetModule(SfxToolsModule::Writer, std::move(pUniqueModule));
that's the module that's requsted in:
[ 2312s] #1  0x00007ffab4e2c356 in SwResId(char const*) () at /home/abuild/rpmbuild/BUILD/libreoffice-6.2.1.2/workdir/LinkTarget/CppunitTest/libtest_sw_uwriter.so
Comment 6 Swamp Workflow Management 2019-03-07 10:30:06 UTC
This is an autogenerated message for OBS integration:
This bug (1127857) was mentioned in
https://build.opensuse.org/request/show/682380 Factory / libreoffice
Comment 7 Martin Liška 2019-03-08 09:36:57 UTC
*** Bug 1121589 has been marked as a duplicate of this bug. ***
Comment 8 Swamp Workflow Management 2019-03-08 10:00:07 UTC
This is an autogenerated message for OBS integration:
This bug (1127857) was mentioned in
https://build.opensuse.org/request/show/682738 Factory / libreoffice
Comment 11 Swamp Workflow Management 2019-05-31 13:10:11 UTC
This is an autogenerated message for OBS integration:
This bug (1127857) was mentioned in
https://build.opensuse.org/request/show/706664 Factory / gcc8
Comment 12 Swamp Workflow Management 2019-06-07 16:17:00 UTC
SUSE-SU-2019:1448-1: An update that solves one vulnerability and has 11 fixes is now available.

Category: security (moderate)
Bug References: 1089811,1116451,1121874,1123131,1123455,1124062,1124869,1127760,1127857,1128845,1135189,1135228
CVE References: CVE-2018-16858
Sources used:
SUSE Linux Enterprise Workstation Extension 12-SP4 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2, myspell-dictionaries-20190423-16.18.1
SUSE Linux Enterprise Workstation Extension 12-SP3 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2, myspell-dictionaries-20190423-16.18.1
SUSE Linux Enterprise Software Development Kit 12-SP4 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2
SUSE Linux Enterprise Software Development Kit 12-SP3 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2
SUSE Linux Enterprise Desktop 12-SP4 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2, myspell-dictionaries-20190423-16.18.1
SUSE Linux Enterprise Desktop 12-SP3 (src):    libixion-0.14.1-13.9.2, liborcus-0.14.1-10.12.2, libreoffice-6.2.3.2-43.49.1, libwps-0.4.10-10.13.2, myspell-dictionaries-20190423-16.18.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 14 Swamp Workflow Management 2019-07-29 16:21:07 UTC
SUSE-SU-2019:2003-1: An update that solves one vulnerability and has 18 fixes is now available.

Category: security (important)
Bug References: 1110348,1112112,1112113,1112114,1116451,1117195,1117300,1121874,1123131,1123455,1124062,1124658,1124869,1127760,1127857,1128845,1135189,1135228,882383
CVE References: CVE-2018-16858
Sources used:
SUSE Linux Enterprise Workstation Extension 15-SP1 (src):    libreoffice-6.2.5.2-8.5.1, libwps-0.4.10-7.3.3
SUSE Linux Enterprise Module for Open Buildservice Development Tools 15-SP1 (src):    libreoffice-6.2.5.2-8.5.1, libwps-0.4.10-7.3.3

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 15 Swamp Workflow Management 2019-08-18 13:47:12 UTC
openSUSE-SU-2019:1929-1: An update that solves one vulnerability and has 11 fixes is now available.

Category: security (moderate)
Bug References: 1089811,1116451,1121874,1123131,1123455,1124062,1124869,1127760,1127857,1128845,1135189,1135228
CVE References: CVE-2018-16858
Sources used:
openSUSE Leap 15.1 (src):    libixion-0.14.1-lp151.4.3.1, liborcus-0.14.1-lp151.3.3.1, libreoffice-6.2.5.2-lp151.3.3.4, libwps-0.4.10-lp151.2.3.1, mdds-1_4-1.4.3-lp151.2.1, myspell-dictionaries-20190423-lp151.2.3.1
openSUSE Leap 15.0 (src):    libixion-0.14.1-lp150.3.3.1, liborcus-0.14.1-lp150.2.3.1, libreoffice-6.2.5.2-lp150.2.13.3, libwps-0.4.10-lp150.7.1, mdds-1_4-1.4.3-lp150.2.1, myspell-dictionaries-20190423-lp150.2.10.1
Comment 16 Martin Liška 2021-03-02 14:36:08 UTC
Should be fixed.