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

tst_qmltc_examples fails on webOS

    XMLWordPrintable

Details

    • webOS
    • 3aa295df30 (qt/qtdeclarative/dev) a5f6c5d335 (qt/qtdeclarative/6.4) a5f6c5d335 (qt/tqtc-qtdeclarative/6.4) 3aa295df30 (qt/tqtc-qtdeclarative/dev)

    Description

      This test case unusually creates two QGuiApplications within one process and the time second window.show() is called (line 106),  it will always end up either in deadlock or causing a SIGABRT on webOS emulator. 

      https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/qml/doc/snippets/qmltc/tst_qmltc_examples.cpp

      If only one QGuiApplication is created (i.e. either tst_qmltc_examples::app()  or tst_qmltc_examples::appComponent()  is commented out), then these test cases will pass. 

      According to stack trace it looks like the problem could be in webOS's QtWayland library, perhaps the mutex is not correctly reinitialized?

      Config: Using QtTest library 6.5.0, Qt 6.5.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.3.0), webos 2.17.0.g

      tst_qmltc_examples: ../nptl/pthread_mutex_lock.c:81: _pthread_mutex_lock: Assertion `mutex->data._owner == 0' failed.

      === Stack trace ===

      [Thread 1 (Thread 0x7f0535519880 (LWP 21707)):
      #0  0x00007f0537fa2437 in _GI__wait4 (pid=21717, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27
      #1  0x00007f053a0a9a1d in ?? () from /usr/lib/libQt6Test.so.6
      #2  0x00007f053a0a9d42 in ?? () from /usr/lib/libQt6Test.so.6
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #5  0x00007f0537f00528 in __GI_abort () at abort.c:79
      #6  0x00007f0537f0040f in _assert_fail_base (fmt=0x7f053805f0c8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f0537ed062d "mutex->data._owner == 0", file=0x7f0537ed05fa "../nptl/pthread_mutex_lock.c", line=81, function=<optimized out>) at assert.c:92
      #7  0x00007f0537f0e5f2 in _GI_assert_fail (assertion=assertion@entry=0x7f0537ed062d "mutex->data.owner == 0", file=file@entry=0x7f0537ed05fa "../nptl/pthread_mutex_lock.c", line=line@entry=81, function=function@entry=0x7f0537ed0790 <PRETTY_FUNCTION.10195> "_pthread_mutex_lock") at assert.c:101
      #8  0x00007f0537ec5714 in _GI__pthread_mutex_lock (mutex=<optimized out>) at ../nptl/pthread_mutex_lock.c:81
      #9  0x00007f0537082273 in wl_proxy_marshal_array_constructor_versioned () from /usr/lib/libwayland-client.so.0
      #10 0x00007f05370826af in wl_proxy_marshal_constructor () from /usr/lib/libwayland-client.so.0
      #11 0x00007f0534cafb03 in WebOSShellPrivate::createShellSurface(QtWaylandClient::QWaylandWindow*) () from /usr/lib/libwebos-platform-interface.so.1
      #12 0x00007f0534ba75c5 in QtWaylandClient::QWaylandWindow::initWindow() () from /usr/lib/libQt6WaylandClient.so.6
      #13 0x00007f0534ba7ae3 in QtWaylandClient::QWaylandWindow::setVisible(bool) () from /usr/lib/libQt6WaylandClient.so.6
      #14 0x00007f0534cf48c9 in ?? () from /usr/lib/plugins/platforms/libwebos-wayland-egl.so
      #15 0x00007f0538af3c34 in QWindowPrivate::setVisible(bool) () from /usr/lib/libQt6Gui.so.6

       

      Attachments

        Issue Links

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

          Activity

            People

              jannej Janne Juntunen
              jannej Janne Juntunen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes