Two unit-tests fail by segmentation fault when using clang

Jean-Baptiste Faure jbfaure at libreoffice.org
Thu Nov 27 15:57:46 PST 2014


Hi,

Le 26/11/2014 13:33, Michael Stahl a écrit :
> On 24.11.2014 06:20, Jean-Baptiste Faure wrote:
>> Hi,
>>
>> I try to build LibreOffice 4.4 and master on Ubuntu 14.10 x86-64 using
>> clang (version 3.5.0) instead of gcc (version 4.9).
>> I get two unit-test fails by segmentation fault:
>> CppunitTest_basic_enable
>> CppunitTest_basic_nested_struct
>>
>> It worked with gcc, so I guess the errors are related to the use of
>> clang. Is there something I can do from my side?
> 
> please (turn on --enable-debug or --enable-dbgutil if you haven't
> already and) run the tests in a debugger with:
> 
> CPPUNITTRACE="gdb --args"  make CppunitTest_basic_enable
> 
> and when it crashes use "bt" to get a backtrace and post it here.

I first did a complete rebuild with --enable-debug turned on and all
went fine, no crash.
Then I did a complete rebuild with --enable-debug turned off and it
failed CppunitTest_basic_enable with segmentation fault.
So I turned on --enable-debug again, set export CPPUNITTRACE="gdb
--args" and did only make CppunitTest_basic_enable

The gdb session gave that:

Reading symbols from
[...]/LibO/master/workdir/LinkTarget/Executable/cppunittester...(no
debugging symbols found)...done.
(gdb) run
Starting program:
[...]/LibO/master/workdir/LinkTarget/Executable/cppunittester
[...]/LibO/master/workdir/LinkTarget/CppunitTest/libtest_basic_enable.so
--headless -env:BRAND_BASE_DIR=file://[...]/LibO/master/instdir
-env:BRAND_SHARE_SUBDIR=share
-env:UserInstallation=file://[...]/LibO/master/workdir/CppunitTest/basic_enable.test.user
-env:CONFIGURATION_LAYERS=xcsxcu:file://[...]/LibO/master/instdir/share/registry
-env:UNO_TYPES=file://[...]/LibO/master/instdir/program/types/offapi.rdb\ file://[...]/LibO/master/instdir/ure/share/misc/types.rdb
-env:UNO_SERVICES=file://[...]/LibO/master/workdir/Rdb/ure/services.rdb\
file://[...]/LibO/master/workdir/ComponentTarget/configmgr/source/configmgr.component\
file://[...]/LibO/master/workdir/ComponentTarget/i18npool/util/i18npool.component
-env:URE_INTERNAL_LIB_DIR=file://[...]/LibO/master/instdir/ure/lib
-env:LO_LIB_DIR=file://[...]/LibO/master/instdir/program
-env:LO_JAVA_DIR=file://[...]/LibO/master/instdir/program/classes
--protector
[...]/LibO/master/workdir/LinkTarget/Library/unoexceptionprotector.so
unoexceptionprotector --protector
[...]/LibO/master/workdir/LinkTarget/Library/unobootstrapprotector.so
unobootstrapprotector --protector
[...]/LibO/master/workdir/LinkTarget/Library/libvclbootstrapprotector.so
vclbootstrapprotector
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x2aaaac5e2700 (LWP 15364)]

Program received signal SIGSEGV, Segmentation fault.
0x00002aaabbf34464 in SbClassFactory::RemoveClassModule(SbModule*) ()
   from [...]/LibO/master/instdir/program/libsblo.so
(gdb) bt
#0  0x00002aaabbf34464 in SbClassFactory::RemoveClassModule(SbModule*) ()
   from [...]/LibO/master/instdir/program/libsblo.so
#1  0x00002aaabbf6d8d0 in SbiCodeGen::Save() () from
[...]/LibO/master/instdir/program/libsblo.so
#2  0x00002aaabbf797fe in SbModule::Compile() () from
[...]/LibO/master/instdir/program/libsblo.so
#3  0x00002aaabbca69ae in MacroSnippet::Compile() ()
   from
[...]/LibO/master/workdir/LinkTarget/CppunitTest/libtest_basic_enable.so
#4  0x00002aaabbca5d87 in (anonymous
namespace)::EnableTest::testEnableRuntime() ()
   from
[...]/LibO/master/workdir/LinkTarget/CppunitTest/libtest_basic_enable.so
#5  0x00002aaaaad2876e in CppUnit::TestCaseMethodFunctor::operator()()
const ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#6  0x00002aaaaad251a8 in
CppUnit::ProtectorChain::ProtectFunctor::operator()() const ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#7  0x00002aaaaad251a8 in
CppUnit::ProtectorChain::ProtectFunctor::operator()() const ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#8  0x00002aaaacb6d6a3 in (anonymous
namespace)::Prot::protect(CppUnit::Functor const&,
CppUnit::ProtectorContext const&) () from
[...]/LibO/master/workdir/LinkTarget/Library/unoexceptionprotector.so
#9  0x00002aaaaad251a8 in
CppUnit::ProtectorChain::ProtectFunctor::operator()() const ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#10 0x00002aaaaad17620 in
CppUnit::DefaultProtector::protect(CppUnit::Functor const&,
CppUnit::ProtectorContext const&)
    () from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#11 0x00002aaaaad251a8 in
CppUnit::ProtectorChain::ProtectFunctor::operator()() const ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#12 0x00002aaaaad2265e in
CppUnit::ProtectorChain::protect(CppUnit::Functor const&,
CppUnit::ProtectorContext const&)
---Type <return> to continue, or q <return> to quit---
    () from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#13 0x00002aaaaad34bd0 in CppUnit::TestResult::protect(CppUnit::Functor
const&, CppUnit::Test*, std::string const&) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#14 0x00002aaaaad28096 in CppUnit::TestCase::run(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#15 0x00002aaaaad28e6d in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#16 0x00002aaaaad28cea in
CppUnit::TestComposite::run(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#17 0x00002aaaaad28e6d in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#18 0x00002aaaaad28cea in
CppUnit::TestComposite::run(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#19 0x00002aaaaad396ce in
CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#20 0x00002aaaaad348b2 in CppUnit::TestResult::runTest(CppUnit::Test*) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#21 0x00002aaaaad3995a in CppUnit::TestRunner::run(CppUnit::TestResult&,
std::string const&) ()
   from
[...]/LibO/master/workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.13.so.0
#22 0x0000000000403492 in (anonymous
namespace)::ProtectedFixtureFunctor::run() const ()
#23 0x0000000000402c90 in main ()
(gdb) c
Continuing.
[Thread 0x2aaaac5e2700 (LWP 15364) exited]

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.

Best regards
JBF
-- 
Seuls des formats ouverts peuvent assurer la pérennité de vos documents.


More information about the LibreOffice mailing list