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

Crash in tst_qquickwindow:headless on macOS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 6.0.0 RC
    • 6.0.0 Beta4
    • Qt RHI, Quick: Other
    • None
    • macOS
    • 45254660d07c82399162931716e569737830802e (qt/qtdeclarative/dev)

    Description

      Running tst_qquickwindow on macOS crashes in the "headless testcase with"

      ********* Start testing of tst_qquickwindow *********
      Config: Using QtTest library 6.0.0, Qt 6.0.0 (x86_64-little_endian-lp64 shared (dynamic) debug build; by Clang 12.0.0 (clang-1200.0.32.27) (Apple)), macos 10.15
      PASS   : tst_qquickwindow::initTestCase()
      QWARN  : tst_qquickwindow::headless() Attempted to call beginFrame() within a still active frame; ignored
      QFATAL : tst_qquickwindow::headless() Received signal 11
               Function time: 1937ms Total time: 1937ms
      FAIL!  : tst_qquickwindow::headless() Received a fatal error.
         Loc: [Unknown file(0)]
      Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted, 1938ms
      ********* Finished testing of tst_qquickwindow *********
      zsh: abort      ./tst_qquickwindow headless
      

      Not very helpful; running it in the debugger gives at least

      Process 78227 launched: '/Users/vohi/qt/dev-build/qtdeclarative/tests/auto/quick/qquickwindow/tst_qquickwindow' (x86_64)
      2020-11-15 23:55:23.628045+0100 tst_qquickwindow[78227:27724250] [qt.test.enter] tst_qquickwindow::initTestCase()
      2020-11-15 23:55:23.628150+0100 tst_qquickwindow[78227:27724250] [qt.test.pass] tst_qquickwindow::initTestCase()
      2020-11-15 23:55:23.628215+0100 tst_qquickwindow[78227:27724250] [qt.test.enter] tst_qquickwindow::headless()
      2020-11-15 23:55:24.289482+0100 tst_qquickwindow[78227:27724307] flock failed to lock maps file: errno = 35
      2020-11-15 23:55:24.289756+0100 tst_qquickwindow[78227:27724307] flock failed to lock maps file: errno = 35
      2020-11-15 23:55:24.427522+0100 tst_qquickwindow[78227:27724455] Attempted to call beginFrame() within a still active frame; ignored
      Process 78227 stopped
      * thread #20, name = 'QSGRenderThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x300000018)
          frame #0: 0x00007fff667d781d libobjc.A.dylib`objc_msgSend + 29
      libobjc.A.dylib`objc_msgSend:
      ->  0x7fff667d781d <+29>: andl   0x18(%r10), %r11d
          0x7fff667d7821 <+33>: shlq   $0x4, %r11
          0x7fff667d7825 <+37>: addq   0x10(%r10), %r11
          0x7fff667d7829 <+41>: cmpq   (%r11), %rsi
      Target 0: (tst_qquickwindow) stopped.
      (lldb) bt
      * thread #20, name = 'QSGRenderThread', stop reason = EXC_BAD_ACCESS (code=1, address=0x300000018)
        * frame #0: 0x00007fff667d781d libobjc.A.dylib`objc_msgSend + 29
          frame #1: 0x0000000104db2345 libQt6Gui_debug.6.dylib`QRhiMetal::enqueueResourceUpdates(this=0x000070000e2000e0)::$_3::operator()() const at qrhimetal.mm:1730:23
          frame #2: 0x0000000104db142e libQt6Gui_debug.6.dylib`QRhiMetal::enqueueResourceUpdates(this=0x0000000107fa99b0, cb=0x0000000107f98b90, resourceUpdates=0x0000000129472a90) at qrhimetal.mm:1748:13
          frame #3: 0x0000000104db2858 libQt6Gui_debug.6.dylib`QRhiMetal::resourceUpdate(this=0x0000000107fa99b0, cb=0x0000000107f98b90, resourceUpdates=0x0000000129472a90) at qrhimetal.mm:1897:5
          frame #4: 0x00000001049183c6 libQt6Gui_debug.6.dylib`QRhiCommandBuffer::resourceUpdate(this=0x0000000107f98b90, resourceUpdates=0x0000000129472a90) at qrhi.cpp:5227:16
          frame #5: 0x000000010077572c libQt6Quick_debug.6.dylib`QSGBatchRenderer::Renderer::prepareRenderPass(this=0x0000000108102c00, ctx=0x0000000108102ef0) at qsgbatchrenderer.cpp:3641:22
          frame #6: 0x0000000100773ae4 libQt6Quick_debug.6.dylib`QSGBatchRenderer::Renderer::render(this=0x0000000108102c00) at qsgbatchrenderer.cpp:3381:5
          frame #7: 0x00000001007ab3bb libQt6Quick_debug.6.dylib`QSGRenderer::renderScene(this=0x0000000108102c00) at qsgrenderer.cpp:175:5
          frame #8: 0x00000001007f406d libQt6Quick_debug.6.dylib`QSGDefaultRenderContext::renderNextRhiFrame(this=0x0000000108a3e850, renderer=0x0000000108102c00) at qsgdefaultrendercontext.cpp:211:15
          frame #9: 0x00000001006f1393 libQt6Quick_debug.6.dylib`QQuickWindowPrivate::renderSceneGraph(this=0x000000010e850c00, size=0x0000000108875030, surfaceSize=0x000070000e200bd0) at qquickwindow.cpp:706:18
          frame #10: 0x00000001009be23e libQt6Quick_debug.6.dylib`QSGRenderThread::syncAndRender(this=0x0000000108874fc0) at qsgthreadedrenderloop.cpp:786:12
          frame #11: 0x00000001009bf28a libQt6Quick_debug.6.dylib`QSGRenderThread::run(this=0x0000000108874fc0) at qsgthreadedrenderloop.cpp:982:13
          frame #12: 0x000000010681860e libQt6Core_debug.6.dylib`QThreadPrivate::start(arg=0x0000000108874fc0) at qthread_unix.cpp:329:14
          frame #13: 0x00007fff67b91109 libsystem_pthread.dylib`_pthread_start + 148
          frame #14: 0x00007fff67b8cb8b libsystem_pthread.dylib`thread_start + 15
      

      The crash is 100% reproducible.

      Attachments

        Issue Links

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

          Activity

            People

              lagocs Laszlo Agocs
              vhilshei Volker Hilsheimer
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes