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

Segmentation fault when fast-double pressing on a touch screen device

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.13.2
    • QPA: EGLFS
    • None
    • Linux/Yocto

    Description

      During the destruction of the QEglfsPlatform, it's possible to receive events from the touch device. Which causes a crash on exit because the `Screen` has been destroyed.

      This is the thread #4

      0x0000007f9f5f0378 in QScreen::geometry() const () at ../../include/QtCore/../../../git/src/corelib/tools/qsize.h:119
      119     ../../include/QtCore/../../../git/src/corelib/tools/qsize.h: No such file or directory.
      (gdb) bt
      #0  0x0000007f9f5f0378 in QScreen::geometry() const () at ../../include/QtCore/../../../git/src/corelib/tools/qsize.h:119
      #1  0x0000007f9c5955f8 in QEvdevTouchScreenData::screenGeometry() const () at ../../../include/QtCore/../../../git/src/corelib/tools/qrefcount.h:60
      #2  0x0000007f9c5988ac in QEvdevTouchScreenData::reportPoints() () at ../../../include/QtCore/../../../git/src/corelib/tools/qrefcount.h:60
      #3  0x0000007f9c599034 in QEvdevTouchScreenData::processInputEvent(input_event*) () at ../../../include/QtCore/../../../git/src/corelib/tools/qrefcount.h:60
      #4  0x0000007f9c59a6f0 in QEvdevTouchScreenHandler::readData() () at ../../../include/QtCore/../../../git/src/corelib/tools/qrefcount.h:60
      #5  0x0000007f9f1a686c in QMetaObject::activate(QObject*, int, int, void**) () at ../../../recipe-sysroot/usr/include/bits/string_fortified.h:34
      #6  0x0000007f9f1b3c54 in QSocketNotifier::activated (this=this@entry=0x7f94000e50, _t1=<optimized out>, _t2=_t2@entry=...) at .moc/moc_qsocketnotifier.cpp:141
      #7  0x0000007f9f1b40b8 in QSocketNotifier::event (this=0x7f94000e50, e=<optimized out>) at ../../../git/src/corelib/kernel/qsocketnotifier.cpp:266
      #8  0x0000007f9f178488 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../../recipe-sysroot/usr/include/bits/string_fortified.h:34
      #9  0x0000007f9f1d1e94 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at ../../include/QtCore/../../../git/src/corelib/tools/qlist.h:513
      #10 0x0000007f9f1d22f8 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../../git/src/corelib/tools/qlist.h:513
      #11 0x0000007f9f176bbc in QEventLoop::exec (this=0x7f9b205828, flags=...) at ../../include/QtCore/../../../git/src/corelib/global/qflags.h:140
      #12 0x0000007f9ef99428 in QThread::exec() () at ../../include/QtCore/../../../git/src/corelib/tools/qarraydata.h:236
      #13 0x0000007f9c596aec in QEvdevTouchScreenHandlerThread::run() () at ../../../include/QtCore/../../../git/src/corelib/tools/qrefcount.h:60
      #14 0x0000007f9ef9aa78 in QThreadPrivate::start(void*) () at ../../include/QtCore/../../../git/src/corelib/tools/qarraydata.h:236
      #15 0x0000007f9ea2c850 in start_thread (arg=0x7fe6c9e6e6) at pthread_create.c:479
      #16 0x0000007fa0bd2f4c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
      

      This is thread #1

      #0  0x0000007fa0bc64c0 in __libc_open64 (file=file@entry=0x7f9c5a9c38 "/dev/tty0", oflag=oflag@entry=524290) at ../sysdeps/unix/sysv/linux/open64.c:48
      #1  0x0000007f9c588308 in open64 (__oflag=524290, __path=0x7f9c5a9c38 "/dev/tty0") at ../../../../recipe-sysroot/usr/include/bits/fcntl2.h:85
      #2  qt_safe_open (flags=<optimized out>, mode=<optimized out>, pathname=<optimized out>) at ../../../include/QtCore/5.13.2/QtCore/private/../../../../../../git/src/corelib/kernel/qcore_unix_p.h:195
      #3  setTTYCursor (enable=enable@entry=true) at ../../../../git/src/platformsupport/fbconvenience/qfbvthandler.cpp:80
      #4  0x0000007f9c588558 in QFbVtHandler::~QFbVtHandler (this=0x5586c681b0, __in_chrg=<optimized out>) at ../../../../git/src/platformsupport/fbconvenience/qfbvthandler.cpp:140
      #5  0x0000007f9c588594 in QFbVtHandler::~QFbVtHandler (this=0x5586c681b0, __in_chrg=<optimized out>) at ../../../../git/src/platformsupport/fbconvenience/qfbvthandler.cpp:136
      #6  0x0000007f9c53bc90 in QScopedPointerDeleter<QFbVtHandler>::cleanup (pointer=<optimized out>) at ../../../../include/QtCore/../../../git/src/corelib/tools/qscopedpointer.h:104
      #7  QScopedPointer<QFbVtHandler, QScopedPointerDeleter<QFbVtHandler> >::~QScopedPointer (this=0x5586c70be8, __in_chrg=<optimized out>)
          at ../../../../include/QtCore/../../../git/src/corelib/tools/qscopedpointer.h:107
      #8  QEglFSIntegration::~QEglFSIntegration (this=0x5586c70bb0, __in_chrg=<optimized out>) at ../../../../../git/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h:67
      #9  QEglFSIntegration::~QEglFSIntegration (this=0x5586c70bb0, __in_chrg=<optimized out>) at ../../../../../git/src/plugins/platforms/eglfs/api/qeglfsintegration_p.h:67
      #10 0x0000007f9f5bd9a0 in QGuiApplicationPrivate::~QGuiApplicationPrivate() () at ../../include/QtCore/../../../git/src/corelib/tools/qlist.h:515
      #11 0x0000007f9fbffb6c in QApplicationPrivate::~QApplicationPrivate (this=0x5586c66d20, __in_chrg=<optimized out>) at ../../../git/src/widgets/kernel/qapplication.cpp:177
      #12 0x0000007f9f1aea60 in QObject::~QObject() () at ../../../recipe-sysroot/usr/include/bits/string_fortified.h:34
      #13 0x0000007f9f17a96c in QCoreApplication::~QCoreApplication() () at ../../../recipe-sysroot/usr/include/bits/string_fortified.h:34
      #14 0x0000007f9fc01ce0 in QApplication::~QApplication (this=0x7fe6c9ec28, __in_chrg=<optimized out>) at ../../../git/src/widgets/kernel/qapplication.cpp:841
      #15 0x0000005555e3076c in ?? ()
      #16 0x0000005555e30510 in ?? ()
      

      Attachments

        Activity

          People

            lagocs Laszlo Agocs
            roussinm Maxime Roussin-Bélanger
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: