0.7 is FTFBS on s390x in Impish (segfault)

Bug #1931229 reported by Christian Ehrhardt 
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
konclude (Ubuntu)
New
Undecided
Unassigned

Bug Description

Hi,
I've found this to fail to build in update-excuses.
It turns out that on s390x it actually builds fine, but the following self-tests that are executed make konclude run into a segfault.

Example failing log:
https://launchpadlibrarian.net/542007740/buildlog_ubuntu-impish-s390x.konclude_0.7.0+1137~dfsg-1_BUILDING.txt.gz

it seems that in this code
Source/Reasoner/Triples/CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData.cpp:
                        template<class T>
                        CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<T>* CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<T>::addBatchLinker(T* linker) {
                                if (linker) {
                                        mBatchLinker = linker->append(mBatchLinker);
                                }
                                if (!mLastBatchLinker && mBatchLinker) {
                                        mLastBatchLinker = mBatchLinker->getLastListLink();
                                }
                                return this;
                        }

Somehow mBatchLinker gets corrupted.

Repro after building the code (e.g. via debuild):
$ Release/Konclude sparqlfile --verbose -s Tests/lubm-univ-bench-sparql-load-and-query-test.sparql -o Tests/query-answers.xml -c Configs/querying-config.xml

Backtrace:
(gdb) run sparqlfile --verbose -s Tests/lubm-univ-bench-sparql-load-and-query-test.sparql -o Tests/query-answers.xml -c Configs/querying-config.xml
Starting program: /home/ubuntu/konclude-0.7.0+1137~dfsg/Release/Konclude sparqlfile --verbose -s Tests/lubm-univ-bench-sparql-load-and-query-test.sparql -o Tests/query-answers.xml -c Configs/querying-config.xml
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/s390x-linux-gnu/libthread_db.so.1".
[New Thread 0x3fff6bff870 (LWP 38353)]
[New Thread 0x3fff5a7f870 (LWP 38354)]
[New Thread 0x3fff4fff870 (LWP 38355)]
[New Thread 0x3fff45ef870 (LWP 38356)]
[New Thread 0x3fff33ff870 (LWP 38357)]
[New Thread 0x3fff2bfe870 (LWP 38358)]
[New Thread 0x3fff1dff870 (LWP 38359)]
{info} 09:23:57:915 >> Starting Konclude ...
{info} 09:23:57:915 >> Konclude - Uni Ulm Parallel Reasoner
{info} 09:23:57:915 >> Reasoner for the SROIQV(D) Description Logic, 64-bit, Version v0.7.0-1137 - e414f879 (Apr 19 2021)

{info} 09:23:57:918 >> Processing OWLlink request from file 'Configs/querying-config.xml'.
[New Thread 0x3fff01ff870 (LWP 38360)]
{info} 09:23:57:918 >> Initializing reasoner. Creating calculation context.
[New Thread 0x3ffef3ff870 (LWP 38361)]
[New Thread 0x3ffee96f870 (LWP 38362)]
[New Thread 0x3ffed9ff870 (LWP 38363)]
[New Thread 0x3ffecfef870 (LWP 38364)]
[New Thread 0x3ffec7ee870 (LWP 38365)]
[New Thread 0x3ffeb9ff870 (LWP 38366)]
[New Thread 0x3ffea8ff870 (LWP 38367)]
{info} 09:23:57:920 >> Processing SPARQL request from file 'Tests/lubm-univ-bench-sparql-load-and-query-test.sparql'.
[New Thread 0x3ffe997f870 (LWP 38368)]
[New Thread 0x3ffe917e870 (LWP 38369)]
{info} 09:23:57:920 >> Read XML content in 0 ms.
[New Thread 0x3ffe79ff870 (LWP 38370)]
{info} 09:23:57:921 >> Reasoner initialized with 1 processing unit(s).
{warning} 09:23:57:922 >> Annotations are currently not handled.
{info} 09:23:57:923 >> Ontology parsed in 1 ms.
{info} 09:23:58:617 >> Ontology parsed in 693 ms.
{info} 09:23:58:618 >> SPARQL Query parsed in 0 ms.
{info} 09:23:58:619 >> Preprocessing ontology 'http://Konclude.com/Ontologies/UnnamedOntologies/0/8e919ad9-d406-429f-a77d-82acede11398/'.
[New Thread 0x3ffddaff870 (LWP 38371)]

Thread 20 "QThread" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x3ffddaff870 (LWP 38371)]
Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>::addBatchLinker (
    linker=0x3ffdc26dbb8, this=0x1a600000000) at Source/Reasoner/Triples/CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData.cpp:59
59 mBatchLinker = linker->append(mBatchLinker);
(gdb) p mBatchLinker
Cannot access memory at address 0x1a6000000a8
(gdb) p linker
$1 = (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker *) 0x3ffdc26dbb8
(gdb) bt
#0  Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>::addBatchLinker (
    linker=0x3ffdc26dbb8, this=0x1a600000000) at Source/Reasoner/Triples/CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData.cpp:59
#1  Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>::addBatchLinker(long long, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker*) [clone .isra.0] (this=<optimized out>, index=<optimized out>, linker=0x3ffdc26dbb8)
    at Source/Reasoner/Triples/CRedlandStoredTriplesIndexingBaseBatchLinkerVector.cpp:72
#2  0x000002aa006202b2 in operator() (batchData=@0x3ffdca00020: 0x3ffdca700f8, __closure=0x3ffdceb3a60)
    at Source/Reasoner/Triples/CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer.cpp:594
#3  std::__invoke_impl<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer::indexTriples(Konclude::Reasoner::Triples::CRedlandStoredTriplesData*, librdf_node*, librdf_node*, Konclude::Reasoner::Ontology::CConcreteOntology*)::<lambda(const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&)>&, const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&> (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#4  std::__invoke_r<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer::indexTriples(Konclude::Reasoner::Triples::CRedlandStoredTriplesData*, librdf_node*, librdf_node*, Konclude::Reasoner::Ontology::CConcreteOntology*)::<lambda(const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&)>&, const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&> (__fn=...) at /usr/include/c++/10/bits/invoke.h:142
#5  std::_Function_handler<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>(const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&), Konclude::Reasoner::Triples::CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer::indexTriples(Konclude::Reasoner::Triples::CRedlandStoredTriplesData*, librdf_node*, librdf_node*, Konclude::Reasoner::Ontology::CConcreteOntology*)::<lambda(const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const&)> >::_M_invoke(const std::_Any_data &, const Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> * const&) (__functor=..., __args#0=@0x3ffdca00020: 0x3ffdca700f8) at /usr/include/c++/10/bits/std_function.h:292
#6  0x000002aa00626978 in std::function<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const* const&)>::operator()(Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const* const&) const (
    __args#0=@0x3ffdca00020: 0x3ffdca700f8, this=0x3ffdcd01ef8) at /usr/include/c++/10/bits/std_function.h:622
#7  QtConcurrent::MappedReducedKernel<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const*, std::function<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const* const&)>, std::function<void (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>&, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> const&)>, QtConcurrent::ReduceKernel<std::function<void (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>&, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> const&)>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> > >::runIterations(Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const*, int, int, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>*) (this=0x3ffdcd01e00, sequenceBeginIterator=<optimized out>, beginIndex=<optimized out>, endIndex=<optimized out>)
    at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentmapkernel.h:131
#8  0x000002aa00622f50 in QtConcurrent::IterateKernel<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const*, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> >--Type <RET> for more, q to quit, c to continue without paging--
::forThreadFunction (this=0x3ffdcd01e00) at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:255
#9  QtConcurrent::IterateKernel<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>* const*, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> >::threadFunction (
    this=0x3ffdcd01e00) at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentiteratekernel.h:217
#10 0x000003fffd882f66 in QtConcurrent::ThreadEngineBase::startBlocking() () from /lib/s390x-linux-gnu/libQt5Concurrent.so.5
#11 0x000002aa0062aebe in QtConcurrent::ThreadEngine<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> >::startBlocking (this=0x3ffdcd01e00) at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentthreadengine.h:150
#12 QtConcurrent::ThreadEngineStarter<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> >::startBlocking (this=<optimized out>) at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentthreadengine.h:239
#13 QtConcurrent::blockingMappedReduced<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker>, std::function<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const* const&)>, std::function<void (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>&, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> const&)> >(Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const&, std::function<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVectorData<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinker> const* const&)>, std::function<void (Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker>&, Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseBatchLinkerVector<Konclude::Reasoner::Triples::CRedlandStoredTriplesIndexingBaseResolvingLinker> const&)>, QFlags<QtConcurrent::ReduceOption>) (options=..., reduce=..., map=..., sequence=...) at /usr/include/s390x-linux-gnu/qt5/QtConcurrent/qtconcurrentmap.h:168
#14 Konclude::Reasoner::Triples::CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer::indexTriples (this=<optimized out>, redlandTriplesData=<optimized out>,
    rdfTypePredicate=<optimized out>, namedIndividualObject=<optimized out>, updateConcreteOntology=<optimized out>)
    at Source/Reasoner/Triples/CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer.cpp:606
#15 0x000002aa006288dc in Konclude::Reasoner::Triples::CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer::indexABoxIndividuals (this=0x3ffdc9d0180,
    updateConcreteOntology=<optimized out>, ontologyTripleData=0x3fff07023d0) at Source/Reasoner/Triples/CRedlandStoredTriplesIndividualAssertionConvertionQtConcurrentIndexer.cpp:272
#16 0x000002aa0054a0d6 in Konclude::Reasoner::Preprocess::CRequirementConfigPreprocessingThread::createNextTest (this=0x3ffef4d0500)
    at Source/Reasoner/Preprocess/CRequirementConfigPreprocessingThread.cpp:154
#17 0x000002aa0053efb6 in Konclude::Reasoner::Preprocess::CPreprocessingThread::doNextPendingTests (this=0x3ffef4d0500) at Source/Reasoner/Preprocess/CPreprocessingThread.cpp:93
#18 0x000002aa00540c76 in Konclude::Reasoner::Preprocess::CPreprocessingThread::processCustomsEvents (this=0x3ffef4d0500, type=<optimized out>, event=<optimized out>)
    at Source/Reasoner/Preprocess/CPreprocessingThread.cpp:175
#19 0x000002aa0011875a in Konclude::Concurrent::CThread::event (this=0x3ffef4d0508, event=0x3ffef550800) at Source/Concurrent/CThread.cpp:187
#20 0x000003fffd56c3e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/s390x-linux-gnu/libQt5Core.so.5
#21 0x000003fffd575630 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/s390x-linux-gnu/libQt5Core.so.5
#22 0x000003fffd5e7ef6 in ?? () from /lib/s390x-linux-gnu/libQt5Core.so.5
#23 0x000003fffb7e9c20 in g_main_context_dispatch () from /lib/s390x-linux-gnu/libglib-2.0.so.0
#24 0x000003fffb7ea2a4 in g_main_context_iteration () from /lib/s390x-linux-gnu/libglib-2.0.so.0
#25 0x000003fffd5e70dc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/s390x-linux-gnu/libQt5Core.so.5
#26 0x000003fffd56895e in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/s390x-linux-gnu/libQt5Core.so.5
#27 0x000003fffd2c11d4 in QThread::exec() () from /lib/s390x-linux-gnu/libQt5Core.so.5
#28 0x000002aa00113f02 in Konclude::Concurrent::CThread::run (this=0x3ffef4d0508) at Source/Concurrent/CThread.cpp:133
#29 0x000003fffd2c2120 in ?? () from /lib/s390x-linux-gnu/libQt5Core.so.5
#30 0x000003fffc2092f6 in start_thread (arg=0x3ffddaff870) at pthread_create.c:481
--Type <RET> for more, q to quit, c to continue without paging--
#31 0x000003fffcd21bc6 in thread_start () at ../sysdeps/unix/sysv/linux/s390/s390-64/clone.S:65

I've reported this upstream but didn't find an externally reachable bug tracker.
Therefore I've asked them to ping back here on this bug if they find anything we could fix.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

FYI for some reasons this worked in Debian
https://buildd.debian.org/status/fetch.php?pkg=konclude&arch=s390x&ver=0.7.0%2B1137%7Edfsg-1&stamp=1618864031&raw=0

So it could (unproven theory) be due to the different default compiler version?

tags: added: update-excuse
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.