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: plasma-b...@kde.org Reporter: psychon...@nothingisreal.com 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.