https://bugs.kde.org/show_bug.cgi?id=384540
Bug ID: 384540
Summary: KDE applications segfault when XLIB_SKIP_ARGB_VISUALS
is defined
Product: plasmashell
Version: 5.10.5
Platform: Other
OS: Linux
Status: UNCONFIRMED
Severity: crash
Priority: NOR
Component: generic-crash
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: 1.0
Whenever I run a KDE application in Plasma with the XLIB_SKIP_ARGB_VISUALS
environment variable defined, the application crashes with a segmentation fault
(and no backtrace dialog) as soon as a pull-down menu is activated. This
happens a lot when launching KDE applications such as Okular from Emacs, since
Emacs defines XLIB_SKIP_ARGB_VISUALS.
The problem seems specific to KDE applications running in Plasma. Other
Qt-based applications, such as Clementine and Skype 4.3.0.37, are not affected.
The problem is also specific to Plasma. If I use another desktop environment,
such as LXQt, then I cannot reproduce the crash, even when running KDE
applications such as Okular.
Steps to reproduce:
1. XLIB_SKIP_ARGB_VISUALS="" /usr/bin/okular
2. Click on the "File" menu.
Observed behaviour:
3. Okular crashes with the message "Segmentation fault (core dumped)". No
crash dialog with a backtrace appears. No debugging output appears in the
terminal.
Expected behaviour:
3. Okular should not crash.
Running the KDE application through valgrind shows a bit more information:
$ XLIB_SKIP_ARGB_VISUALS="" /usr/bin/valgrind /usr/bin/okular
==12593== Memcheck, a memory error detector
==12593== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12593== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==12593== Command: /usr/bin/okular
==12593==
==12593== Invalid read of size 8
==12593== at 0x17AE0966: qglx_findConfig(_XDisplay*, int, QSurfaceFormat,
bool, int) (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x17AE0C1C: qglx_findVisualInfo(_XDisplay*, int,
QSurfaceFormat*, int) (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x17ADCF7F: QXcbGlxWindow::createVisual() (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x13C839A5: QXcbWindow::create() (in
/usr/lib64/libQt5XcbQpa.so.5.9.1)
==12593== by 0x13C7099A: QXcbIntegration::createPlatformWindow(QWindow*)
const (in /usr/lib64/libQt5XcbQpa.so.5.9.1)
==12593== by 0x76BC0C5: QWindowPrivate::create(bool, unsigned long long) (in
/usr/lib64/libQt5Gui.so.5.9.1)
==12593== by 0x6F02C44: QWidgetPrivate::create_sys(unsigned long long, bool,
bool) (in /usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x6F032CC: QWidget::create(unsigned long long, bool, bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x6F0F285: QWidget::setVisible(bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x701E99F: QMenu::popup(QPoint const&, QAction*) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x7029962: QMenuBarPrivate::popupAction(QAction*, bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x702BB6F: QMenuBarPrivate::setCurrentAction(QAction*, bool,
bool) (in /usr/lib64/libQt5Widgets.so.5.9.1)
==12593== Address 0x20 is not stack'd, malloc'd or (recently) free'd
==12593==
==12593==
==12593== Process terminating with default action of signal 11 (SIGSEGV)
==12593== Access not within mapped region at address 0x20
==12593== at 0x17AE0966: qglx_findConfig(_XDisplay*, int, QSurfaceFormat,
bool, int) (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x17AE0C1C: qglx_findVisualInfo(_XDisplay*, int,
QSurfaceFormat*, int) (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x17ADCF7F: QXcbGlxWindow::createVisual() (in
/usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12593== by 0x13C839A5: QXcbWindow::create() (in
/usr/lib64/libQt5XcbQpa.so.5.9.1)
==12593== by 0x13C7099A: QXcbIntegration::createPlatformWindow(QWindow*)
const (in /usr/lib64/libQt5XcbQpa.so.5.9.1)
==12593== by 0x76BC0C5: QWindowPrivate::create(bool, unsigned long long) (in
/usr/lib64/libQt5Gui.so.5.9.1)
==12593== by 0x6F02C44: QWidgetPrivate::create_sys(unsigned long long, bool,
bool) (in /usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x6F032CC: QWidget::create(unsigned long long, bool, bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x6F0F285: QWidget::setVisible(bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x701E99F: QMenu::popup(QPoint const&, QAction*) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x7029962: QMenuBarPrivate::popupAction(QAction*, bool) (in
/usr/lib64/libQt5Widgets.so.5.9.1)
==12593== by 0x702BB6F: QMenuBarPrivate::setCurrentAction(QAction*, bool,
bool) (in /usr/lib64/libQt5Widgets.so.5.9.1)
==12593== If you believe this happened as a result of a stack
==12593== overflow in your program's main thread (unlikely but
==12593== possible), you can try to increase the size of the
==12593== main thread stack using the --main-stacksize= flag.
==12593== The main thread stack size used in this run was 8388608.
==12593==
==12593== HEAP SUMMARY:
==12593== in use at exit: 5,896,989 bytes in 58,834 blocks
==12593== total heap usage: 262,184 allocs, 203,350 frees, 31,810,371 bytes
allocated
==12593==
==12593== LEAK SUMMARY:
==12593== definitely lost: 11,776 bytes in 32 blocks
==12593== indirectly lost: 17,486 bytes in 670 blocks
==12593== possibly lost: 1,122,601 bytes in 3,925 blocks
==12593== still reachable: 4,745,126 bytes in 54,207 blocks
==12593== of which reachable via heuristic:
==12593== newarray : 1,608 bytes in 47 blocks
==12593== multipleinheritance: 65,848 bytes in 81
blocks
==12593== suppressed: 0 bytes in 0 blocks
==12593== Rerun with --leak-check=full to see details of leaked memory
==12593==
==12593== For counts of detected and suppressed errors, rerun with: -v
==12593== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
--
You are receiving this mail because:
You are watching all bug changes.