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.

Reply via email to