Details
-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
None
-
5.9.6
-
None
Description
Our application runs on a SIGSEGV in ~QEglFSKmsGbmCursor.
The reason is because of accessing the m_screen member, that points to a screen, that has already been deleted.
Attached is a log including the stack reported by the address sanitizer. I modified the debug statement in ~QEglFSKmsGbmScreen and added a debug statement ( the line numbers from the crash differ by 2 from the original code ) in ~QEglFSKmsGbmCursor so that it can be seen, what is going on:
The m_screen pointer in QEglFSKmsGbmCursor refers to the first screen, but the destructor for the cursor is not called, before the last screen gets deleted.
Here is the interesting part of the log:
~QEglFSKmsGbmScreen: Screen dtor 0x61100001b5c0. Remaining screens: 1
~QEglFSKmsGbmScreen: Screen dtor 0x611000027c80. Remaining screens: 0
QEglFSKmsGbmDevice::destroyGlobalCursor: Destroying global GBM mouse cursor
~QEglFSKmsGbmCursor: Cursor dtor 0x60f0000063a0, screen 0x61100001b5c0.
Attachments
Gerrit Reviews
For Gerrit Dashboard: QTBUG-68992 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
602139,3 | eglfs: Avoid drm cursor teardown issues | dev | qt/qtbase | Status: NEW | 0 | 0 |