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

Qt application sometimes crash when keyboard & mouse are disconnected while suspended

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P1: Critical
    • None
    • 5.7.1
    • QPA: X11/XCB
    • None
    • I am on Debian testing and KDE, with Qt 5.7.1+dfsg-2.

    Description

      Some Qt applications crash when I both disconnect an external screen and suspend the machine at almost the same time. This started to happen in mid-December; since then I have tried to revert various upgrades and configuration changes to no avail.

      The backtrace always involves the function QXcbConnection::touchDeviceForId. Here's a backtrace from Dolphin crashing:

      ```
      [KCrash Handler]
      #6 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58
      #7 0x00007f77db78440a in __GI_abort () at abort.c:89
      #8 0x00007f77db7c0bd0 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7f77db8b5c70 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
      #9 0x00007f77db7c6fa6 in malloc_printerr (action=3, str=0x7f77db8b27be "corrupted double-linked list", ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5046
      #10 0x00007f77db7c7f7f in _int_free (av=0x7f77dbae8b00 <main_arena>, p=0x2b40890, have_lock=0) at malloc.c:4049
      #11 0x00007f77c8dac771 in XIQueryDevice () from /usr/lib/x86_64-linux-gnu/libXi.so.6
      #12 0x00007f77c7a19667 in QXcbConnection::touchDeviceForId (this=this@entry=0x22561d0, id=<optimized out>) at qxcbconnection_xi2.cpp:398
      #13 0x00007f77c7a1ae04 in QXcbConnection::xi2SetupDevices (this=this@entry=0x22561d0) at qxcbconnection_xi2.cpp:258
      #14 0x00007f77c7a1e07c in QXcbConnection::xi2HandleHierachyEvent (this=0x22561d0, event=<optimized out>) at qxcbconnection_xi2.cpp:831
      #15 0x00007f77c7a1e153 in QXcbConnection::xi2HandleEvent (this=this@entry=0x22561d0, event=event@entry=0x7f77c0006e50) at qxcbconnection_xi2.cpp:523
      #16 0x00007f77c79f0aca in QXcbConnection::handleXcbEvent (this=this@entry=0x22561d0, event=event@entry=0x7f77c0006e50) at qxcbconnection.cpp:1229
      #17 0x00007f77c79f1015 in QXcbConnection::processXcbEvents (this=0x22561d0) at qxcbconnection.cpp:1741
      #18 0x00007f77d6540449 in QObject::event (this=0x22561d0, e=<optimized out>) at kernel/qobject.cpp:1263
      #19 0x00007f77d6df6b2c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x22561d0, e=0x7f77c0004050) at kernel/qapplication.cpp:3799
      #20 0x00007f77d6dfe2e1 in QApplication::notify (this=0x7fff50d71b00, receiver=0x22561d0, e=0x7f77c0004050) at kernel/qapplication.cpp:3556
      #21 0x00007f77d6513990 in QCoreApplication::notifyInternal2 (receiver=0x22561d0, event=event@entry=0x7f77c0004050) at kernel/qcoreapplication.cpp:988
      #22 0x00007f77d651611d in QCoreApplication::sendEvent (event=0x7f77c0004050, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
      #23 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x2248fd0) at kernel/qcoreapplication.cpp:1649
      #24 0x00007f77d6516588 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1503
      #25 0x00007f77d6567bf3 in postEventSourceDispatch (s=0x2282db0) at kernel/qeventdispatcher_glib.cpp:276
      #26 0x00007f77d06d77f7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #27 0x00007f77d06d7a60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #28 0x00007f77d06d7b0c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
      #29 0x00007f77d6567fff in QEventDispatcherGlib::processEvents (this=0x2292700, flags=...) at kernel/qeventdispatcher_glib.cpp:423
      #30 0x00007f77d651197a in QEventLoop::exec (this=this@entry=0x7fff50d719c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
      #31 0x00007f77d651a0ec in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
      #32 0x00007f77dbb4ea89 in kdemain () from /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
      #33 0x00007f77db7702b1 in __libc_start_main (main=0x400600, argc=1, argv=0x7fff50d71c88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff50d71c78) at ../csu/libc-start.c:291
      #34 0x000000000040063a in _start ()
      ```

      I've also seen KWin, plasmashell and kded5 crash in the same or very similar ways.

      Attachments

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

        Activity

          People

            srutledg Shawn Rutledge
            ralfjung Ralf Jung
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes