Bug#873362: coinor-libcoinutils3v5: unannounced ABI change without SONAME change?

Rene Engelhard rene at debian.org
Sat Aug 26 22:53:59 UTC 2017


Package: coinor-libcoinutils3v5
Version: 2.10.14+repack1-1
Severity: serious

Hi,

LOs unit tests fail (don't get confused by the name, also tests the CoinMP
based solver) since the last updates in sid:

build CUT] sccomp_lpsolver
S=/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2 && I=$S/instdir && W=$S/workdir &&    mkdir -p $W/CppunitTest/ && rm -fr $W/CppunitTest/sccomp_lpsolver.test.user && mkdir $W/CppunitTest/sccomp_lpsolver.test.user &&    rm -fr $W/CppunitTest/sccomp_lpsolver.test.core && mkdir $W/CppunitTest/sccomp_lpsolver.test.core && cd $W/CppunitTest/sccomp_lpsolver.test.core && (   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_sccomp_lpsolver.so --headless "-env:BRAND_BASE_DIR=file://$S/instdir" "-env:BRAND_SHARE_SUBDIR=share" "-env:UserInstallation=file://$W/CppunitTest/sccomp_lpsolver.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"  "-env:UNO_SERVICES=file://$W/Rdb/ure/services.rdb file://$W/Rdb/services.rdb"  -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/sccomp_lpsolver.test"   )  > $W/CppunitTest/sccomp_lpsolver.test.log 2>&1 || ( RET=$?; $S/solenv/bin/gdb-core-bt.sh $W/LinkTarget/Executable/cppunittester $W/CppunitTest/sccomp_lpsolver.test.core $RET >> $W/CppunitTest/sccomp_lpsolver.test.log 2>&1; cat $W/CppunitTest/sccomp_lpsolver.test.log; $S/solenv/gbuild/platform/unittest-failed-default.sh Cppunit sccomp_lpsolver)
Segmentation fault (core dumped)
(anonymous namespace)::LpSolverTest::testLpSolver finished in: 579ms

It looks like /data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/LinkTarget/Executable/cppunittester generated a core file at /data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/CppunitTest/sccomp_lpsolver.test.core/core
Backtraces:
[New LWP 11917]
[New LWP 11918]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/Li'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f6dca552b9e in CoinMessageHandler::internalPrint() () from /usr/lib/x86_64-linux-gnu/libCoinUtils.so.3
[Current thread is 1 (Thread 0x7f6de7e2e740 (LWP 11917))]
warning: File "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.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".
To enable execution of this file add
        add-auto-load-safe-path /data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/instdir/program/libuno_sal.so.3-gdb.py
line to your configuration file "/tmp/tmp.Aw8SthVoRj/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/tmp/tmp.Aw8SthVoRj/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"
warning: File "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.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".
warning: File "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.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".
rax            0x0      0
rbx            0x55fce8a092d0   94544722957008
rcx            0x55fce8a094f8   94544722957560
rdx            0x30     48
rsi            0x0      0
rdi            0x55fce8a092d0   94544722957008
rbp            0x55fce8a092d0   0x55fce8a092d0
rsp            0x7ffe59817bc0   0x7ffe59817bc0
r8             0x4      4
r9             0x4      4
r10            0x0      0
r11            0x1      1
12            0x0      0
r13            0x1      1
r14            0x7ffe59818020   140730400079904
r15            0x0      0
rip            0x7f6dca552b9e   0x7f6dca552b9e <CoinMessageHandler::internalPrint()+78>
eflags         0x10212  [ AF IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0

i[...]
Thread 1 (Thread 0x7f6de7e2e740 (LWP 11917)):
#0  0x00007f6dca552b9e in CoinMessageHandler::internalPrint() () at /usr/lib/x86_64-linux-gnu/libCoinUtils.so.3
#1  0x00007f6dca552f4b in CoinMessageHandler::finish() () at /usr/lib/x86_64-linux-gnu/libCoinUtils.so.3
#2  0x00007f6dca553555 in CoinMessageHandler::operator<<(CoinMessageMarker) () at /usr/lib/x86_64-linux-gnu/libCoinUtils.so.3
#3  0x00007f6dc8d17e25 in ClpSimplex::initialSolve(ClpSolve&) () at /usr/lib/x86_64-linux-gnu/libClp.so.1
#4  0x00007f6dc8d1ea5f in ClpSimplex::initialSolve() () at /usr/lib/x86_64-linux-gnu/libClp.so.1
#5  0x00007f6dcab10dc0 in CbcSolveProblem(void*, PROBLEMINFO*, OPTIONINFO*, int) () at /usr/lib/x86_64-linux-gnu/libCoinMP.so.1
#6  0x00007f6dcab10e5f in CbcOptimizeProblem () at /usr/lib/x86_64-linux-gnu/libCoinMP.so.1
#7  0x00007f6dcad23609 in CoinMPSolver::solve() (this=0x55fce8f5bd90) at ./sccomp/source/solver/CoinMPSolver.cxx:324
        aVariableCells = std::vector of length 1, capacity 1 = {{Sheet = 0, Column = 0, Row = 0}}
        nVar = <optimized out>
        aCellsHash = std::unordered_map with 1 element = {[{Sheet = 0, Column = 0, Row = 0}] = std::vector of length 2, capacity 2 = {0, 1}}
        aVarIter = <optimized out>
        aCellsIter = <optimized out>
        rObjCoeff = <optimized out>
        nObjectConst = <optimized out>
        nRows = <optimized out>
        nCompSize = <optimized out>
        pCompMatrix = 0x0
        pRHS = 0x55fce8d2d5b0
        pMatrixBegin = 0x55fce8d2d5f0
        pMatrixCount = 0x55fce8bbb8f0
        pMatrix = <optimized out>
        nMatrixPos = <optimized out>
        pLowerBounds = 0x55fce8a15340
        nObjectSense = <optimized out>
        hProb = 0x55fce8d2d6d0
        nResult = <optimized out>
#8  0x00007f6dcf53ae98 in (anonymous namespace)::LpSolverTest::testSolver(rtl::OUString const&) (this=this at entry=0x55fce881b8a0, rName=...) at ./sccomp/qa/unit/lpsolver.cxx:99
        aObjective = {Sheet = 0, Column = 0, Row = 0}
        aVariables = {_pSequence = 0x55fce8d2d5d0, static s_pType = 0x55fce8ebda70}
        aConstraints = {_pSequence = 0x55fce89e7ee0, static s_pType = 0x55fce8ebffc0}
        aSolution = {_pSequence = 0x55fce7bced60, static s_pType = 0x0}
#9  0x00007f6dcf53bc05 in (anonymous namespace)::LpSolverTest::testCoinMPSolver() (this=0x55fce881b8a0) at ./sccomp/qa/unit/lpsolver.cxx:70
10 0x00007f6de7a11bf2 in CppUnit::TestCaseMethodFunctor::operator()() const () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#11 0x00007f6de63326c3 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (this=0x55fce7a54a60, functor=..., context=...) at ./unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63
#12 0x00007f6de7a081d3 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#13 0x00007f6de7a0ed55 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#14 0x00007f6de7a1778c in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#15 0x00007f6de7a11a30 in CppUnit::TestCase::run(CppUnit::TestResult*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#16 0x00007f6de7a11f03 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#17 0x00007f6de7a11e1e in CppUnit::TestComposite::run(CppUnit::TestResult*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#18 0x00007f6de7a11f03 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#19 0x00007f6de7a11e1e in CppUnit::TestComposite::run(CppUnit::TestResult*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#20 0x00007f6de7a176b2 in CppUnit::TestResult::runTest(CppUnit::Test*) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#21 0x00007f6de7a1a06e in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () at /usr/lib/x86_64-linux-gnu/libcppunit-1.14.so.0
#22 0x000055fce6711eb4 in (anonymous namespace)::ProtectedFixtureFunctor::run() const (this=0x7ffe59819590) at ./sal/cppunittester/cppunittester.cxx:316
        collector = <incomplete type>
        logger = {<CppUnit::TestListener> = {_vptr.TestListener = 0x55fce6917a30 <vtable for (anonymous namespace)::LogFailuresAsTheyHappen+16>}, <No data fields>}
        timer = {<CppUnit::TestListener> = {_vptr.TestListener = 0x55fce6917980 <vtable for (anonymous namespace)::TimingListener+16>}, m_nStartTime = 655}
        eye = {<CppUnit::TestListener> = {_vptr.TestListener = 0x55fce69179d8 <vtable for (anonymous namespace)::EyecatcherListener+16>}, <No data fields>}
        lib = "libtest_sccomp_lpsolver.so"
        runner = <incomplete type>
        pVal = 0x0
        outputter = <incomplete type>
        manager = <incomplete type>
        success = <optimized out>
#23 0x000055fce67126e4 in sal_main() () at ./sal/cppunittester/cppunittester.cxx:466
        testlib = "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/LinkTarget/CppunitTest/libtest_sccomp_lpsolver.so"
        tests = {<CppUnit::Functor> = {<No data fields>}, testlib = "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/LinkTarget/CppunitTest/libtest_sccomp_lpsolver.so", args = "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/LinkTarget/CppunitTest/libtest_sccomp_lpsolver.so --headless", protectors = std::vector of length 3, capacity 4 = {0x55fce7a54a60, 0x55fce7a95220, 0x55fce7cdd770}, result = @0x7ffe598195c0}
        protectors = std::vector of length 3, capacity 4 = {0x55fce7a54a60, 0x55fce7a95220, 0x55fce7cdd770}
        result = <incomplete type>
        args = "/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/LinkTarget/CppunitTest/libtest_sccomp_lpsolver.so --headless"
        index = <optimized out>
        ok = false
        path = {pData = 0x55fce7d09c10}
#24 0x000055fce6710bfb in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./sal/cppunittester/cppunittester.cxx:373
        ret = <optimized out>


Error: a unit test failed, please do one of:
make CppunitTest_sccomp_lpsolver CPPUNITTRACE="gdb --args"
    # for interactive debugging on Linux
make CppunitTest_sccomp_lpsolver VALGRIND=memcheck
    # for memory checking
make CppunitTest_sccomp_lpsolver DEBUGCPPUNIT=TRUE
    # for exception catching
/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/solenv/gbuild/CppunitTest.mk:112: recipe for target '/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/CppunitTest/sccomp_lpsolver.test' failed
make[4]: *** [/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/workdir/CppunitTest/sccomp_lpsolver.test] Error 1
make[4]: Leaving directory '/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2'
Makefile:267: recipe for target 'build' failed
make[3]: *** [build] Error 2
make[3]: Leaving directory '/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2'
/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/debian/rules:2010: recipe for target 'check' failed
make[2]: *** [check] Error 2
make[2]: Leaving directory '/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2'
/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2/debian/rules:1936: recipe for target 'debian/stampdir/build-arch' failed
make[1]: *** [debian/stampdir/build-arch] Error 2
make[1]: Leaving directory '/data/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.4.1.2'
debian/rules:1929: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Note that it crashes in CoinUtils (see Thread 1).

What makes me think is a CoinUtils bug - espescially since rebuilding CoinMP
without any change and installing those packages fixes this test.
Reinstalling sids version of CoinMP breaks again.

So I believe ABI changed a) without telling r-depends and
b) without changing package name?

Or is this one more instance of the gcc7 rebuilds needed? Though it builds,
just fails at runtime...

Regards,

Rene



More information about the debian-science-maintainers mailing list