Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-56777

ReportContext::createError() crashes on mips*

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.7.1, 5.9.0
    • XML: QtXmlPatterns
    • 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            mandriver Dmitry Shachnev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes