Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.7.1, 5.9.0
-
None
-
Debian GNU/Linux experimental mips64el
Description
qtxmlpatterns started failing recently on mips, mips64el and mipsel in Debian.
The crash happens in QPatternist::ReportContext::createError which tries to raise an exception of type bool. The code looks sane, so it looks to me like there is a memory corruption somewhere. Unfortunately I did not manage to get Valgrind working.
Short version of the stack trace:
#0 parse_lsda_header (context=context@entry=0xffffffcae0, p=p@entry=0x51474e <error: Cannot access memory at address 0x51474e>, info=info@entry=0xffffffbdb0) at ../../../../src/libstdc++-v3/libsupc++/eh_personality.cc:58 #1 0x000000fff7159194 in __cxxabiv1::__gxx_personality_v0 (version=<optimized out>, actions=<optimized out>, exception_class=<optimized out>, ue_header=0x49ff80, context=0xffffffcae0) at ../../../../src/libstdc++-v3/libsupc++/eh_personality.cc:445 #2 0x000000fff70a8728 in _Unwind_RaiseException (exc=exc@entry=0x49ff80) at ../../../src/libgcc/unwind.inc:113 #3 0x000000fff715a274 in __cxxabiv1::__cxa_throw (obj=0x49ffa0, tinfo=0xfff728a618 <typeinfo for bool>, dest=dest@entry=0x0) at ../../../../src/libstdc++-v3/libsupc++/eh_throw.cc:82 #4 0x000000fff7b87e6c in QPatternist::ReportContext::createError (this=this@entry=0x498170, description=..., type=type@entry=QtFatalMsg, id=..., sourceLocation=...) at environment/qreportcontext.cpp:76 #5 0x000000fff7b89388 in QPatternist::ReportContext::error (this=this@entry=0x498170, msg=..., code=code@entry=QPatternist::ReportContext::FOER0000, sourceLocation=...) at environment/qreportcontext.cpp:85 #6 0x000000fff7b8946c in QPatternist::ReportContext::error (this=this@entry=0x498170, message=..., errorCode=errorCode@entry=QPatternist::ReportContext::FOER0000, reflection=reflection@entry=0x4aea30) at environment/qreportcontext.cpp:111 #7 0x000000fff7c3b9e8 in QPatternist::ErrorFN::evaluateSingleton (this=0x4aea30, context=...) at functions/qerrorfn.cpp:60 #8 0x000000fff7bb35b4 in QPatternist::Expression::evaluateSequence (this=<optimized out>, context=...) at expr/qexpression.cpp:298 #9 0x000000fff7bc5720 in QPatternist::ExpressionSequence::mapToSequence (this=<optimized out>, context=..., expr=...) at expr/qexpressionsequence.cpp:62 #10 QPatternist::SequenceMappingIterator<QPatternist::Item, QExplicitlySharedDataPointer<QPatternist::Expression>, QExplicitlySharedDataPointer<QPatternist::ExpressionSequence const> >::next (this=0x4a0940) at iterators/qsequencemappingiterator_p.h:158 #11 0x000000fff7b36720 in QXmlResultItems::next (this=this@entry=0xffffffdd60) at api/qxmlresultitems.cpp:110 #12 0x000000000041dbfc in tst_QXmlQuery::evaluateToQXmlResultItemsErrorAtEnd (this=<optimized out>) at tst_qxmlquery.cpp:1143 #13 0x0000000000432c28 in tst_QXmlQuery::qt_static_metacall (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/tst_qxmlquery.moc:587 #14 0x000000fff75b900c in QMetaMethod::invoke (this=<optimized out>, object=0x0, object@entry=0xfffffff358, connectionType=4149973004, connectionType@entry=Qt::DirectConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:2222 #15 0x000000fff7885ff0 in QMetaMethod::invoke (val9=..., val8=..., val7=..., val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., connectionType=Qt::DirectConnection, object=<optimized out>, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qmetaobject.h:123 #16 QTest::TestMethods::invokeTestOnData (this=this@entry=0xfffffff260, index=index@entry=25) at qtestcase.cpp:803 #17 0x000000fff7886a7c in QTest::TestMethods::invokeTest (this=this@entry=0xfffffff260, index=index@entry=25, data=data@entry=0x0, watchDog=watchDog@entry=0x0) at qtestcase.cpp:984 #18 0x000000fff78874bc in QTest::TestMethods::invokeTests (this=this@entry=0xfffffff260, testObject=testObject@entry=0xfffffff358) at qtestcase.cpp:1322 #19 0x000000fff7887b90 in QTest::qExec (testObject=testObject@entry=0xfffffff358, argc=<optimized out>, argv=argv@entry=0xfffffff4f8) at qtestcase.cpp:1735 #20 0x000000000040b814 in main (argc=<optimized out>, argv=0xfffffff4f8) at tst_qxmlquery.cpp:3483
The complete stack trace (obtained with thread apply all bt full) is in the attached file.