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

Crash when calling QQmlEngine::retranslate

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11, macOS, Windows
    • Commits:
      0d8879323c234d06b82905d13bcc4ee193daeb61, f51231164e7074bfcd4deea31e82428b31483e53, 0118a2d6b6347a444fef2b80a170caa606b669d2 45c34bdda6 (qt/tqtc-qtdeclarative/5.15)

      Description

      The application crashes with the following stack trace.

      1  QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine *, QObject *, QQmlPropertyData *)                                                                                   (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e5adb0    
      2  None                                                                                                                                                                      No value                                                                                                                0x107bd8680    
      3  QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine *, QQmlContextData *, QObject *, QV4::String *, QV4::QObjectWrapper::RevisionMode, bool *, QQmlPropertyData * *) (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e5bfa7    
      4  QV4::QQmlTypeWrapper::virtualGet(QV4::Managed const *, QV4::PropertyKey, QV4::Value const *, bool *)                                                                      (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100fb3851    
      5  QV4::Lookup::getterFallback(QV4::Lookup *, QV4::ExecutionEngine *, QV4::Value const&)                                                                                     (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100dfbf11    
      6  QV4::Moth::VME::interpret(QV4::CppStackFrame *, QV4::ExecutionEngine *, const char *)                                                                                     (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e7a3d6    
      7  QV4::Moth::VME::exec(QV4::CppStackFrame *, QV4::ExecutionEngine *)                                                                                                        (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e799f2    
      8  QV4::Function::call(QV4::Value const *, QV4::Value const *, int, QV4::ExecutionContext const *)                                                                           (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e1fec5    
      9  QQmlJavaScriptExpression::evaluate(QV4::CallData *, bool *)                                                                                                               (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100fa40de    
      10 QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&)                                         (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100fac11e    
      11 QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>)                                                                                                                  (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100faa200    
      12 QQmlContextData::refreshExpressionsRecursive(QQmlJavaScriptExpression *)                                                                                                  (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f57645    
      13 QQmlContextData::refreshExpressionsRecursive(QQmlJavaScriptExpression *)                                                                                                  (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f57632    
      14 QQmlContextData::refreshExpressions()                                                                                                                                     (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f55ef9    
      15 QQmlEngine::retranslate()                                                                                                                                                 (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f3c7b8    
      16 Translator::retranslate()                                                                                                                                                 translator.cpp                                                                                                      41  0x100005efc    
      17 Translator::qt_static_metacall(QObject *, QMetaObject::Call, int, void * *)                                                                                               moc_translator.cpp                                                                                                  88  0x1000068c6    
      18 Translator::qt_metacall(QMetaObject::Call, int, void * *)                                                                                                                 moc_translator.cpp                                                                                                  147 0x100006bd5    
      19 CallMethod(QQmlObjectOrGadget const&, int, int, int, int *, QV4::ExecutionEngine *, QV4::CallData *, QMetaObject::Call)                                                   (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e63595    
      20 CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine *, QV4::CallData *, QMetaObject::Call)                                               (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e60b62    
      21 QV4::QObjectMethod::callInternal(QV4::Value const *, QV4::Value const *, int) const                                                                                       (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e604da    
      22 QV4::Moth::VME::interpret(QV4::CppStackFrame *, QV4::ExecutionEngine *, const char *)                                                                                     (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e7ac85    
      23 QV4::Moth::VME::exec(QV4::CppStackFrame *, QV4::ExecutionEngine *)                                                                                                        (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e799f2    
      24 QV4::Function::call(QV4::Value const *, QV4::Value const *, int, QV4::ExecutionContext const *)                                                                           (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100e1fec5    
      25 QQmlJavaScriptExpression::evaluate(QV4::CallData *, bool *)                                                                                                               (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100fa40de    
      26 QQmlBoundSignalExpression::evaluate(void * *)                                                                                                                             (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f5a396    
      27 QQmlBoundSignal_callback(QQmlNotifierEndpoint *, void * *)                                                                                                                (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f5ab6b    
      28 QQmlNotifier::emitNotify(QQmlNotifierEndpoint *, void * *)                                                                                                                (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x100f893b5    
      29 void doActivate<false>(QObject *, int, void * *)                                                                                                                          (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x1015d3f08    
      30 QQmlTimer::event(QEvent *)                                                                                                                                                (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtQml.framework/Versions/5/QtQml                                          0x101003ae7    
      31 QCoreApplicationPrivate::notify_helper(QObject *, QEvent *)                                                                                                               (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x1015a1138    
      32 QCoreApplication::notifyInternal2(QObject *, QEvent *)                                                                                                                    (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x1015a0d94    
      33 QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *)                                                                                                  (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x1015a20d9    
      34 QCocoaEventDispatcherPrivate::processPostedEvents()                                                                                                                       (x86_64) /Users/Qt/5.15.0/clang_64/plugins/platforms/libqcocoa.dylib                                             0x10641fdf9    
      35 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void *)                                                                                                          (x86_64) /Users/Qt/5.15.0/clang_64/plugins/platforms/libqcocoa.dylib                                             0x106420568    
      36 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__                                                                                                                (x86_64h) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation                                 0x7fff3bcd7de3 
      37 __CFRunLoopDoSource0                                                                                                                                                      (x86_64h) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation                                 0x7fff3bcd7d89 
      38 __CFRunLoopDoSources0                                                                                                                                                     (x86_64h) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation                                 0x7fff3bcbb74b 
      39 __CFRunLoopRun                                                                                                                                                            (x86_64h) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation                                 0x7fff3bcbad15 
      40 CFRunLoopRunSpecific                                                                                                                                                      (x86_64h) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation                                 0x7fff3bcba61e 
      41 RunCurrentEventLoopInMode                                                                                                                                                 (x86_64) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox     0x7fff3af191ab 
      42 ReceiveNextEventCommon                                                                                                                                                    (x86_64) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox     0x7fff3af18ee5 
      43 _BlockUntilNextEventMatchingListInModeWithFilter                                                                                                                          (x86_64) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox     0x7fff3af18c76 
      44 _DPSNextEvent                                                                                                                                                             (x86_64) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit                                                  0x7fff392b177d 
      45 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]                                                                                           (x86_64) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit                                                  0x7fff392b046b 
      46 -[NSApplication run]                                                                                                                                                      (x86_64) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit                                                  0x7fff392aa588 
      47 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                               (x86_64) /Users/Qt/5.15.0/clang_64/plugins/platforms/libqcocoa.dylib                                             0x10641f1cf    
      48 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)                                                                                                                   (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x10159ce3f    
      49 QCoreApplication::exec()                                                                                                                                                  (x86_64) /Users/Qt/5.15.0/clang_64/lib/QtCore.framework/Versions/5/QtCore                                        0x1015a13a2    
      50 main                                                                                                                                                                      main.cpp                                                                                                            20  0x1000054e1    
      51 start                                                                                                                                                                     (x86_64) /usr/lib/system/libdyld.dylib                                                                                  0x7fff67c363d5 
      
      
      

      How to reproduce :
      1. Run the attached sample code (qtbu84196.zip).
      2. Press "Push" button multiple times.

      Some times, it happens very soon, sometimes after multiple times of click.

        Attachments

        1. gdb-backtrace
          8 kB
        2. qtbug84196.zip
          1.44 MB
        3. qtbug84196-cmake.zip
          5 kB
        4. qtbug84196-cmake-v2.zip
          4 kB
        5. sanitizer_output.txt
          10 kB

          Issue Links

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

            Activity

              People

              Assignee:
              ulherman Ulf Hermann
              Reporter:
              nagrohn Nahomi Gröhn
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews