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

Segfault in QQmlPropertyCacheCreator<QQmlTypeCompiler>::propertyCacheForObject() when not debugging

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.9.2
    • 5.9, 5.10
    • None
    • OS: macOS Sierra (10.12) [darwin version 16.7.0]

    Description

      After pulling the latest dev branches (where qtdeclarative is at 8d09829fd445ef8c434fe184a9478d2015d096e7), I get the following crash when running Slate:

      Crashed Thread:        8  QQmlThread
      
      Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
      Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
      Exception Note:        EXC_CORPSE_NOTIFY
      
      Termination Signal:    Segmentation fault: 11
      Termination Reason:    Namespace SIGNAL, Code 0xb
      Terminating Process:   exc handler [0]
      
      VM Regions Near 0:
      --> 
          __TEXT                 0000000103867000-00000001038fc000 [  596K] r-x/rwx SM=COW  /Users/USER/*/slate.app/Contents/MacOS/slate
      
      Thread 0:: Dispatch queue: com.apple.main-thread
      0   libsystem_kernel.dylib        	0x00007fff8d161bf2 __psynch_cvwait + 10
      1   libsystem_pthread.dylib       	0x00007fff8d24d7fa _pthread_cond_wait + 712
      2   org.qt-project.QtCore         	0x000000010451966b QWaitConditionPrivate::wait(unsigned long) + 75
      3   org.qt-project.QtCore         	0x0000000104519602 QWaitCondition::wait(QMutex*, unsigned long) + 162
      4   org.qt-project.QtQml          	0x00000001051ba5f7 QQmlThread::internalCallMethodInThread(QQmlThread::Message*) + 247
      5   org.qt-project.QtQml          	0x000000010514b2d5 void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) + 293
      6   org.qt-project.QtQml          	0x000000010514ed15 QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) + 629
      7   org.qt-project.QtQml          	0x000000010512f26a QQmlComponentPrivate::loadUrl(QUrl const&, QQmlComponent::CompilationMode) + 650
      8   org.qt-project.QtQml          	0x00000001051a6560 QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) + 96
      9   org.qt-project.QtQml          	0x00000001051a6c82 QQmlApplicationEngine::load(QUrl const&) + 34
      10  com.yourcompany.slate         	0x000000010386ba5b Application::Application(int&, char**, QString const&) + 1643
      11  com.yourcompany.slate         	0x00000001038b290e main + 46
      12  libdyld.dylib                 	0x00007fff8d033235 start + 1
      
      Thread 1:
      0   libsystem_kernel.dylib        	0x00007fff8d16244e __workq_kernreturn + 10
      1   libsystem_pthread.dylib       	0x00007fff8d24c621 _pthread_wqthread + 1426
      2   libsystem_pthread.dylib       	0x00007fff8d24c07d start_wqthread + 13
      
      Thread 2:
      0   libsystem_kernel.dylib        	0x00007fff8d16244e __workq_kernreturn + 10
      1   libsystem_pthread.dylib       	0x00007fff8d24c621 _pthread_wqthread + 1426
      2   libsystem_pthread.dylib       	0x00007fff8d24c07d start_wqthread + 13
      
      Thread 3:
      0   libsystem_pthread.dylib       	0x00007fff8d24c070 start_wqthread + 0
      1   ???                           	0x0000000400030002 0 + 17180065794
      
      Thread 4:
      0   libsystem_pthread.dylib       	0x00007fff8d24c070 start_wqthread + 0
      1   ???                           	0x0000000000010007 0 + 65543
      
      Thread 5:
      0   libsystem_kernel.dylib        	0x00007fff8d16244e __workq_kernreturn + 10
      1   libsystem_pthread.dylib       	0x00007fff8d24c621 _pthread_wqthread + 1426
      2   libsystem_pthread.dylib       	0x00007fff8d24c07d start_wqthread + 13
      
      Thread 6:
      0   libsystem_kernel.dylib        	0x00007fff8d16244e __workq_kernreturn + 10
      1   libsystem_pthread.dylib       	0x00007fff8d24c621 _pthread_wqthread + 1426
      2   libsystem_pthread.dylib       	0x00007fff8d24c07d start_wqthread + 13
      
      Thread 7:
      0   libsystem_pthread.dylib       	0x00007fff8d24c070 start_wqthread + 0
      1   ???                           	0x0000000105544e00 0 + 4384378368
      
      Thread 8 Crashed:: QQmlThread
      0   org.qt-project.QtQml          	0x0000000104fd9043 QQmlPropertyCacheCreator<QQmlTypeCompiler>::propertyCacheForObject(QmlIR::Object const*, QQmlBindingInstantiationContext const&, QQmlCompileError*) const + 691
      1   org.qt-project.QtQml          	0x0000000104fd6ab3 QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectRecursively(int, QQmlBindingInstantiationContext const&) + 163
      2   org.qt-project.QtQml          	0x0000000104fd6c32 QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectRecursively(int, QQmlBindingInstantiationContext const&) + 546
      3   org.qt-project.QtQml          	0x0000000104fd6c32 QQmlPropertyCacheCreator<QQmlTypeCompiler>::buildMetaObjectRecursively(int, QQmlBindingInstantiationContext const&) + 546
      4   org.qt-project.QtQml          	0x0000000104fcec79 QQmlTypeCompiler::compile() + 281
      5   org.qt-project.QtQml          	0x0000000105154a29 QQmlTypeData::compile(QQmlRefPointer<QQmlTypeNameCache> const&, QV4::CompiledData::ResolvedTypeReferenceMap const&, std::__1::function<bool (QCryptographicHash*)> const&) + 121
      6   org.qt-project.QtQml          	0x00000001051534b4 QQmlTypeData::done() + 4308
      7   org.qt-project.QtQml          	0x0000000105149c11 QQmlDataBlob::tryDone() + 81
      8   org.qt-project.QtQml          	0x000000010514bf44 QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) + 212
      9   org.qt-project.QtQml          	0x000000010514ba8c QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) + 140
      10  org.qt-project.QtQml          	0x000000010514acd3 QQmlTypeLoader::loadThread(QQmlDataBlob*) + 419
      11  org.qt-project.QtQml          	0x000000010514b208 void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) + 88
      12  org.qt-project.QtQml          	0x000000010514ed15 QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) + 629
      13  org.qt-project.QtQml          	0x0000000105156563 QQmlTypeData::resolveTypes() + 1859
      14  org.qt-project.QtQml          	0x0000000105155d8b QQmlTypeData::allDependenciesDone() + 699
      15  org.qt-project.QtQml          	0x000000010514bf09 QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) + 153
      16  org.qt-project.QtQml          	0x000000010514ba8c QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) + 140
      17  org.qt-project.QtQml          	0x000000010514acd3 QQmlTypeLoader::loadThread(QQmlDataBlob*) + 419
      18  org.qt-project.QtQml          	0x000000010514b208 void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) + 88
      19  org.qt-project.QtQml          	0x000000010514ed15 QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) + 629
      20  org.qt-project.QtQml          	0x0000000105156563 QQmlTypeData::resolveTypes() + 1859
      21  org.qt-project.QtQml          	0x0000000105155d8b QQmlTypeData::allDependenciesDone() + 699
      22  org.qt-project.QtQml          	0x000000010514bf09 QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) + 153
      23  org.qt-project.QtQml          	0x000000010514ba8c QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) + 140
      24  org.qt-project.QtQml          	0x000000010514acd3 QQmlTypeLoader::loadThread(QQmlDataBlob*) + 419
      25  org.qt-project.QtQml          	0x000000010514b208 void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) + 88
      26  org.qt-project.QtQml          	0x000000010514ed15 QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) + 629
      27  org.qt-project.QtQml          	0x0000000105156563 QQmlTypeData::resolveTypes() + 1859
      28  org.qt-project.QtQml          	0x0000000105155d8b QQmlTypeData::allDependenciesDone() + 699
      29  org.qt-project.QtQml          	0x000000010514bf09 QQmlTypeLoader::setData(QQmlDataBlob*, QQmlDataBlob::SourceCodeData const&) + 153
      30  org.qt-project.QtQml          	0x000000010514ba8c QQmlTypeLoader::setData(QQmlDataBlob*, QString const&) + 140
      31  org.qt-project.QtQml          	0x000000010514acd3 QQmlTypeLoader::loadThread(QQmlDataBlob*) + 419
      32  org.qt-project.QtQml          	0x000000010514a6b2 QQmlTypeLoaderThread::loadThread(QQmlDataBlob*) + 18
      33  org.qt-project.QtQml          	0x00000001051ba112 QQmlThreadPrivate::threadEvent() + 98
      34  org.qt-project.QtQml          	0x00000001051ba0a0 QQmlThreadPrivate::event(QEvent*) + 32
      35  org.qt-project.QtWidgets      	0x0000000103959e72 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 306
      36  org.qt-project.QtWidgets      	0x000000010395b18f QApplication::notify(QObject*, QEvent*) + 383
      37  org.qt-project.QtCore         	0x00000001046d910f QCoreApplication::notifyInternal2(QObject*, QEvent*) + 159
      38  org.qt-project.QtCore         	0x00000001046da2c2 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 850
      39  org.qt-project.QtCore         	0x000000010472e709 QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 73
      40  org.qt-project.QtCore         	0x00000001046d4e82 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 418
      41  org.qt-project.QtCore         	0x00000001045141b1 QThread::exec() + 113
      42  org.qt-project.QtQml          	0x00000001051ba1b9 QQmlThreadPrivate::run() + 57
      43  org.qt-project.QtCore         	0x0000000104518085 QThreadPrivate::start(void*) + 373
      44  libsystem_pthread.dylib       	0x00007fff8d24c93b _pthread_body + 180
      45  libsystem_pthread.dylib       	0x00007fff8d24c887 _pthread_start + 286
      46  libsystem_pthread.dylib       	0x00007fff8d24c08d thread_start + 13
      
      Thread 8 crashed with X86 Thread State (64-bit):
        rax: 0x0000000000000018  rbx: 0x00007fdc56670490  rcx: 0x000070000b157d48  rdx: 0x0000000000000000
        rdi: 0x000000000000000f  rsi: 0x000070000b1579e8  rbp: 0x000070000b157a20  rsp: 0x000070000b1579e0
         r8: 0x00007fdc5666c730   r9: 0x00007fdc56673af0  r10: 0x00000000fffe0000  r11: 0x00007fdc56673198
        r12: 0x000070000b157aa8  r13: 0x000000000b157b00  r14: 0x000070000b157cd0  r15: 0x000070000b157bd0
        rip: 0x0000000104fd9043  rfl: 0x0000000000010246  cr2: 0x0000000000000000
        
      Logical CPU:     0
      Error Code:      0x00000004
      Trap Number:     14
      

      I don't have any issues if I debug the application, however.

      QML_DISABLE_DISK_CACHE=1 is a workaround.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-62302
          # Subject Branch Project Status CR V

          Activity

            People

              qtqmlteam Qt Qml Team User
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes