Bug 508289 - Segmentation Fault received when Qt based application uses OpenGL
Segmentation Fault received when Qt based application uses OpenGL
Status: CLOSED INSUFFICIENT_DATA
Product: Fedora
Classification: Fedora
Component: mesa (Show other bugs)
11
All Linux
low Severity high
: ---
: ---
Assigned To: Adam Jackson
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-26 08:55 EDT by pbartfai
Modified: 2009-07-06 05:06 EDT (History)
4 users (show)

See Also:
Fixed In Version: mesa-libGL-7.6-0.1.fc11
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-07-06 05:06:30 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description pbartfai 2009-06-26 08:55:02 EDT
Description of problem:

I got segmentation fault when I start Qt application using OpenGL. The same application can be run under Fedora 10 without segmentation fault. I can reproduce the bug with standard Qt examples like /usr/lib/qt4/examples/opengl/2dpainting/2dpainting , /usr/lib/qt4/examples/opengl/grabber/grabber

Version-Release number of selected component (if applicable):
qt-4.5.1-13
qt-examples-4.5.1-13
How reproducible:
start /usr/lib/qt4/examples/opengl/grabber/grabber



Steps to Reproduce:
1. start /usr/lib/qt4/examples/opengl/grabber/grabber
2.
3.
  
Actual results:
Segmentation fault:
[root@fedora11 opengl]# gdb /usr/lib/qt4/examples/opengl/grabber/grabber 
GNU gdb (GDB) Fedora (6.8.50.20090302-27.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Missing separate debuginfos, use: debuginfo-install qt-examples-4.5.1-13.fc11.i586
(gdb) run
Starting program: /usr/lib/qt4/examples/opengl/grabber/grabber 
warning: .dynamic section for "/usr/lib/libQtOpenGL.so.4" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[Thread debugging using libthread_db enabled]
warning: .dynamic section for "/usr/lib/libwacomcfg.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
Detaching after fork from child process 17033.
warning: .dynamic section for "/lib/libgio-2.0.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libcanberra.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libtdb.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations

Program received signal SIGSEGV, Segmentation fault.
0x081f48d0 in ?? ()
(gdb) bt
#0  0x081f48d0 in ?? ()
#1  0x02dd41e1 in glXWaitX () from /usr/lib/libGL.so.1
#2  0x0015d9ff in QGLWidget::resizeEvent(QResizeEvent*) ()
   from /usr/lib/libQtOpenGL.so.4
#3  0x06222f92 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#4  0x0012a94c in QGLWidget::event(QEvent*) () from /usr/lib/libQtOpenGL.so.4
#5  0x061ce444 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#6  0x061d5abe in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#7  0x05fb1fdb in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
#8  0x06222195 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) ()
   from /usr/lib/libQtGui.so.4
#9  0x06229126 in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#10 0x06229469 in QWidgetPrivate::show_recursive() ()
   from /usr/lib/libQtGui.so.4
#11 0x0622955c in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#12 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#13 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#14 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#15 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#16 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#17 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#18 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#19 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#20 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#21 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#22 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#23 0x0804cb45 in glDeleteLists ()
#24 0x002eea66 in __libc_start_main () from /lib/libc.so.6
#25 0x0804b9a1 in glDeleteLists ()


[root@fedora11 opengl]# gdb /usr/lib/qt4/examples/opengl/2dpainting/2dpainting
GNU gdb (GDB) Fedora (6.8.50.20090302-27.fc11)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Missing separate debuginfos, use: debuginfo-install qt-examples-4.5.1-13.fc11.i586
(gdb) run
Starting program: /usr/lib/qt4/examples/opengl/2dpainting/2dpainting 
warning: .dynamic section for "/usr/lib/libQtOpenGL.so.4" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[Thread debugging using libthread_db enabled]
warning: .dynamic section for "/usr/lib/libwacomcfg.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
Detaching after fork from child process 17073.
warning: .dynamic section for "/lib/libgio-2.0.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libcanberra.so.0" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
warning: .dynamic section for "/usr/lib/libtdb.so.1" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations

Program received signal SIGSEGV, Segmentation fault.
0x584c4720 in ?? ()
(gdb) bt
#0  0x584c4720 in ?? ()
#1  0x02dd41e1 in glXWaitX () from /usr/lib/libGL.so.1
#2  0x0015d9ff in QGLWidget::resizeEvent(QResizeEvent*) ()
   from /usr/lib/libQtOpenGL.so.4
#3  0x06222f92 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#4  0x0012a94c in QGLWidget::event(QEvent*) () from /usr/lib/libQtOpenGL.so.4
#5  0x061ce444 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#6  0x061d5abe in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#7  0x05fb1fdb in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
#8  0x06222195 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) ()
   from /usr/lib/libQtGui.so.4
#9  0x06229126 in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#10 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#11 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#12 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#13 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#14 0x0804bcac in QWidget::inputMethodEvent(QInputMethodEvent*) ()
#15 0x002eea66 in __libc_start_main () from /lib/libc.so.6
#16 0x0804b0e1 in QWidget::inputMethodEvent(QInputMethodEvent*) ()
(gdb) 
#0  0x584c4720 in ?? ()
#1  0x02dd41e1 in glXWaitX () from /usr/lib/libGL.so.1
#2  0x0015d9ff in QGLWidget::resizeEvent(QResizeEvent*) ()
   from /usr/lib/libQtOpenGL.so.4
#3  0x06222f92 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#4  0x0012a94c in QGLWidget::event(QEvent*) () from /usr/lib/libQtOpenGL.so.4
#5  0x061ce444 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#6  0x061d5abe in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#7  0x05fb1fdb in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
#8  0x06222195 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) ()
   from /usr/lib/libQtGui.so.4
#9  0x06229126 in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#10 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#11 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#12 0x0622914e in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#13 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#14 0x0804bcac in QWidget::inputMethodEvent(QInputMethodEvent*) ()
#15 0x002eea66 in __libc_start_main () from /lib/libc.so.6
#16 0x0804b0e1 in QWidget::inputMethodEvent(QInputMethodEvent*) ()



Expected results:


Additional info:
Comment 1 Rex Dieter 2009-06-26 09:14:35 EDT
I can't reproduce this on f11/x86_64. :(

but, mention of the inputMethodEvent calls is troubling.

Mind trying (in terminal/konsole):
unset GTK_IM_MODULE QT_IM_MODULE XMODIFIERS

(dang, I think there are some other SCIM-related env vars that I'm forgetting)

and then try running those same examples?
Comment 2 pbartfai 2009-06-26 09:59:09 EDT
I tested "unset GTK_IM_MODULE QT_IM_MODULE XMODIFIERS" and the problem is still there.

I run i686 verion of F11.

I originally experienced the problem with LDView whith the following stack:
#0  0x08271ba8 in ?? ()
#1  0x02dd41e1 in glXWaitX () from /usr/lib/libGL.so.1
#2  0x006bf9ff in QGLWidget::resizeEvent(QResizeEvent*) ()
   from /usr/lib/libQtOpenGL.so.4
#3  0x06222f92 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#4  0x0068c94c in QGLWidget::event(QEvent*) ()
   from /usr/lib/libQtOpenGL.so.4
#5  0x061ce444 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#6  0x061d5abe in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQtGui.so.4
#7  0x05fb1fdb in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQtCore.so.4
#8  0x06222195 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool)
    () from /usr/lib/libQtGui.so.4
#9  0x06229126 in QWidgetPrivate::show_helper() ()
   from /usr/lib/libQtGui.so.4
#10 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#11 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#12 0x0622914e in QWidgetPrivate::show_helper() ()
   from /usr/lib/libQtGui.so.4
#13 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#14 0x06229608 in QWidgetPrivate::showChildren(bool) ()
   from /usr/lib/libQtGui.so.4
#15 0x0622914e in QWidgetPrivate::show_helper() ()
   from /usr/lib/libQtGui.so.4
#16 0x0622a643 in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#17 0x08059f30 in QWidget::show (this=<value optimized out>)
    at /usr/include/QtGui/qwidget.h:473
#18 main (this=<value optimized out>) at QTMain.cpp:119

QTMain.cpp:119 is a show function for the mainwindow. In this case there is no input method related stuff.
Comment 3 Kevin Kofler 2009-06-26 10:23:31 EDT
unset is not enough, you also need to "export GTK_IM_MODULE QT_IM_MODULE XMODIFIERS" after the unset.

But I suspect this is a video driver bug.
Comment 4 pbartfai 2009-06-26 10:52:02 EDT
I did export after unset and the problem is still occures.

f11 runs under VMWare virtual machine so the standard MESA OpenGL drivers are used. mesa-libGL-7.5-0.14
Comment 5 pbartfai 2009-06-26 11:00:31 EDT
I have compiled Mesa 7.4.4 from source and problem is not experienced. So it must be Mesa related.
Comment 6 pbartfai 2009-07-06 01:48:30 EDT
Problem is not experienced after Mesa upgrade to 7.6 (mesa-libGL-7.6-0.1.fc11).

Note You need to log in before you can comment on or make changes to this bug.