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

Crash on frameCallback for already closed windows



    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.9.1
    • Fix Version/s: 5.9.2, 5.10
    • Component/s: QPA: Wayland
    • Labels:


      With XDGShell V6 I'm experiences crashes in random Qt applications. Most affected seems to be Kdevelop. The crash seems to happen when a short lived tooltip gets hidden again. From the backtrace I assume it's a race between the client and the server with the server sending out a frameCallback for a window the client has already destroyed.

      Sorry for the relatively bad backtrace. I installed the debug symbols provided by Debian, but it seems not sufficient.

      Thread 1 (Thread 0x7faab64f2b80 (LWP 12013)):
      [KCrash Handler]
      #6  0x00007faa88b821e9 in QtWaylandClient::QWaylandWindow::frameCallback(void*, wl_callback*, unsigned int) () at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
      #7  0x00007faa89336038 in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.6
      #8  0x00007faa89335a9a in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.6
      #9  0x00007faa8891ed8b in wl_closure_invoke (closure=closure@entry=0x555a4040f1d0, flags=flags@entry=1, target=<optimized out>, target@entry=0x555a4030b600, opcode=opcode@entry=0, data=<optimized out>) at ../src/connection.c:935
      #10 0x00007faa8891b928 in dispatch_event (display=display@entry=0x555a3cbf1380, queue=<optimized out>) at ../src/wayland-client.c:1310
      #11 0x00007faa8891cbe4 in dispatch_queue (queue=0x555a3cbf1448, display=0x555a3cbf1380) at ../src/wayland-client.c:1456
      #12 0x00007faa8891cbe4 in wl_display_dispatch_queue_pending (display=0x555a3cbf1380, queue=0x555a3cbf1448) at ../src/wayland-client.c:1698
      #13 0x00007faa88b7f582 in QtWaylandClient::QWaylandDisplay::flushRequests() () at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
      #14 0x00007faaaf4c0865 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x555a3ccc73c0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3766
      #15 0x00007faaaf4c0f37 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x555a3ccc73c0, m=m@entry=0x7faaaf949420 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3628
      #16 0x00007faaaf48e013 in QAbstractEventDispatcher::awake() (this=this@entry=0x555a3ccc73c0) at .moc/moc_qabstracteventdispatcher.cpp:145
      #17 0x00007faaaf4ea43e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x555a3ccc73c0, flags=...) at kernel/qeventdispatcher_glib.cpp:430
      #18 0x00007faaaf48fdba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffcfc5d9d70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
      #19 0x00007faaaf498d24 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1291
      #20 0x0000555a3c8dc663 in main ()


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



            • Assignee:
              johanhelsing Johan Helsing
              mgraesslin Martin Gräßlin
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created:

                Gerrit Reviews

                There are no open Gerrit changes