2007-01-03 21:17:05

by Bauke Jan Douma

[permalink] [raw]
Subject: qconf: reproducible segfault


Not a big deal (I just discovered 'make gconfig'), but I'm experiencing
a reproducible segfault in 'make xconfig', i.e. qconf.

I was wondering if anyone else can reproduce this:

1. QTDIR=/usr/local/lib/qt make xconfig
mine by default has all qconf options OFF ('Show Name', 'Show Range',
'Show Data', 'Show All Options', 'Show Debug Info')

2. from the kernel options, select:
Networking / Networking options / Network packet filtering (replaces ipchains)

3. from the qconf options, now select 'Show Debug Info'
voila -> segfault


This is with qt-3.3.3:

ldd /usr/src/linux-2.6.19.1/scripts/kconfig/qconf
linux-gate.so.1 => (0xffffe000)
libqt-mt.so.3 => /usr/local/lib/qt/lib/libqt-mt.so.3 (0xb76c2000)
libdl.so.2 => /lib/libdl.so.2 (0xb76ad000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb75c9000)
libm.so.6 => /lib/libm.so.6 (0xb75a4000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7598000)
libc.so.6 => /lib/libc.so.6 (0xb746f000)
libpng.so.3 => /usr/local/lib/libpng.so.3 (0xb7449000)
libz.so.1 => /lib/libz.so.1 (0xb7435000)
libGL.so.1 => /usr/lib/libGL.so.1 (0xb73a9000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0xb7393000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb738b000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb7387000)
libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb737e000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb737b000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb7369000)
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0xb72e4000)
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0xb72a6000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7298000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb71cb000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb71c2000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb71aa000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7192000)
/lib/ld-linux.so.2 (0xb7f1b000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb690c000)
libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb690a000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb68b8000)
libexpat.so.0 => /usr/local/lib/libexpat.so.0 (0xb688c000)
libiconv.so.2 => /lib/libiconv.so.2 (0xb67b1000)

First I thought qconf window geometry and maybe font would make a
telling difference here, but I can resize the window all I want and
change fonts any which way I can, but the segfault persists.

FWIW, my initial geometry is 957x843, font is usually LuciduxSans 7.

Strace output didn't provide much of an apparent clue, just the
SIGSEGV.

Oh, kernel is 2.6.19.1 -- not important I'd say.

Thanks for your time.

bjd


2007-01-03 21:48:45

by Randy Dunlap

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

On Wed, 03 Jan 2007 22:00:22 +0100 Bauke Jan Douma wrote:

>
> Not a big deal (I just discovered 'make gconfig'), but I'm experiencing
> a reproducible segfault in 'make xconfig', i.e. qconf.
>
> I was wondering if anyone else can reproduce this:

Yes.

> 1. QTDIR=/usr/local/lib/qt make xconfig
> mine by default has all qconf options OFF ('Show Name', 'Show Range',
> 'Show Data', 'Show All Options', 'Show Debug Info')
>
> 2. from the kernel options, select:
> Networking / Networking options / Network packet filtering (replaces ipchains)
>
> 3. from the qconf options, now select 'Show Debug Info'
> voila -> segfault
>
>
> This is with qt-3.3.3:
>
> ldd /usr/src/linux-2.6.19.1/scripts/kconfig/qconf
> linux-gate.so.1 => (0xffffe000)
> libqt-mt.so.3 => /usr/local/lib/qt/lib/libqt-mt.so.3 (0xb76c2000)
> libdl.so.2 => /lib/libdl.so.2 (0xb76ad000)
> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb75c9000)
> libm.so.6 => /lib/libm.so.6 (0xb75a4000)
> libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7598000)
> libc.so.6 => /lib/libc.so.6 (0xb746f000)
> libpng.so.3 => /usr/local/lib/libpng.so.3 (0xb7449000)
> libz.so.1 => /lib/libz.so.1 (0xb7435000)
> libGL.so.1 => /usr/lib/libGL.so.1 (0xb73a9000)
> libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0xb7393000)
> libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb738b000)
> libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb7387000)
> libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb737e000)
> libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb737b000)
> libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb7369000)
> libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0xb72e4000)
> libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0xb72a6000)
> libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7298000)
> libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb71cb000)
> libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb71c2000)
> libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb71aa000)
> libpthread.so.0 => /lib/libpthread.so.0 (0xb7192000)
> /lib/ld-linux.so.2 (0xb7f1b000)
> libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb690c000)
> libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb690a000)
> libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb68b8000)
> libexpat.so.0 => /usr/local/lib/libexpat.so.0 (0xb688c000)
> libiconv.so.2 => /lib/libiconv.so.2 (0xb67b1000)
>
> First I thought qconf window geometry and maybe font would make a
> telling difference here, but I can resize the window all I want and
> change fonts any which way I can, but the segfault persists.
>
> FWIW, my initial geometry is 957x843, font is usually LuciduxSans 7.
>
> Strace output didn't provide much of an apparent clue, just the
> SIGSEGV.
>
> Oh, kernel is 2.6.19.1 -- not important I'd say.

Here's thd gdb backtrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47045179778192 (LWP 8553)]
0x0000000000422031 in ConfigInfoView::symbolInfo ()
(gdb) bt
#0 0x0000000000422031 in ConfigInfoView::symbolInfo ()
#1 0x00000000004223bf in ConfigInfoView::setShowDebug ()
#2 0x000000000042257c in ConfigInfoView::qt_invoke ()
#3 0x00002ac98d24f79c in QObject::activate_signal ()
from /usr/lib64/libqt-mt.so.3
#4 0x00002ac98d24ff40 in QObject::activate_signal_bool ()
from /usr/lib64/libqt-mt.so.3
#5 0x00002ac98d36e7a5 in QAction::internalActivation ()
from /usr/lib64/libqt-mt.so.3
#6 0x00002ac98d54c9b3 in QAction::qt_invoke () from /usr/lib64/libqt-mt.so.3
#7 0x00002ac98d24f79c in QObject::activate_signal ()
from /usr/lib64/libqt-mt.so.3
#8 0x00002ac98d531628 in QSignal::signal () from /usr/lib64/libqt-mt.so.3
#9 0x00002ac98d2682a5 in QSignal::activate () from /usr/lib64/libqt-mt.so.3
#10 0x00002ac98d33c6e5 in QPopupMenu::mouseReleaseEvent ()
from /usr/lib64/libqt-mt.so.3
#11 0x00002ac98d282657 in QWidget::event () from /usr/lib64/libqt-mt.so.3
#12 0x00002ac98d1f8975 in QApplication::internalNotify ()
from /usr/lib64/libqt-mt.so.3
#13 0x00002ac98d1f978b in QApplication::notify () from /usr/lib64/libqt-mt.so.3
#14 0x00002ac98d1a197d in QETWidget::translateMouseEvent ()
from /usr/lib64/libqt-mt.so.3
#15 0x00002ac98d1a02a3 in QApplication::x11ProcessEvent ()
from /usr/lib64/libqt-mt.so.3
#16 0x00002ac98d1af22f in QEventLoop::processEvents ()
from /usr/lib64/libqt-mt.so.3
#17 0x00002ac98d20d691 in QEventLoop::enterLoop () from /usr/lib64/libqt-mt.so.3
#18 0x00002ac98d20d53a in QEventLoop::exec () from /usr/lib64/libqt-mt.so.3
#19 0x0000000000426053 in main ()


---
~Randy

2007-01-04 00:32:58

by Alessandro Suardi

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

On 1/3/07, Bauke Jan Douma <[email protected]> wrote:
>
> Not a big deal (I just discovered 'make gconfig'), but I'm experiencing
> a reproducible segfault in 'make xconfig', i.e. qconf.
>
> I was wondering if anyone else can reproduce this:
>
> 1. QTDIR=/usr/local/lib/qt make xconfig
> mine by default has all qconf options OFF ('Show Name', 'Show Range',
> 'Show Data', 'Show All Options', 'Show Debug Info')
>
> 2. from the kernel options, select:
> Networking / Networking options / Network packet filtering (replaces ipchains)
>
> 3. from the qconf options, now select 'Show Debug Info'
> voila -> segfault
>
>
> This is with qt-3.3.3:

I can't reproduce it with FC6's current qt-devel in 2.6.20-rc3-git3...
but point 2 is in my tree

Networking / Networking options / Network packet filtering framework (Netfilter)

hmm, curious - let me download 2.6.19.1 and apply it... ok, now I see
your point 2, but I still can't reproduce the problem (Show Debug Info
does indeed show, well, debug information).

[root@sandman ~]# rpm -q qt-devel
qt-devel-3.3.7-0.1.fc6

> ldd /usr/src/linux-2.6.19.1/scripts/kconfig/qconf
> linux-gate.so.1 => (0xffffe000)
> libqt-mt.so.3 => /usr/local/lib/qt/lib/libqt-mt.so.3 (0xb76c2000)
> libdl.so.2 => /lib/libdl.so.2 (0xb76ad000)
> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb75c9000)
> libm.so.6 => /lib/libm.so.6 (0xb75a4000)
> libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7598000)
> libc.so.6 => /lib/libc.so.6 (0xb746f000)
> libpng.so.3 => /usr/local/lib/libpng.so.3 (0xb7449000)
> libz.so.1 => /lib/libz.so.1 (0xb7435000)
> libGL.so.1 => /usr/lib/libGL.so.1 (0xb73a9000)
> libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0xb7393000)
> libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0xb738b000)
> libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb7387000)
> libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0xb737e000)
> libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb737b000)
> libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0xb7369000)
> libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0xb72e4000)
> libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0xb72a6000)
> libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7298000)
> libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb71cb000)
> libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb71c2000)
> libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb71aa000)
> libpthread.so.0 => /lib/libpthread.so.0 (0xb7192000)
> /lib/ld-linux.so.2 (0xb7f1b000)
> libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb690c000)
> libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb690a000)
> libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb68b8000)
> libexpat.so.0 => /usr/local/lib/libexpat.so.0 (0xb688c000)
> libiconv.so.2 => /lib/libiconv.so.2 (0xb67b1000)
>
> First I thought qconf window geometry and maybe font would make a
> telling difference here, but I can resize the window all I want and
> change fonts any which way I can, but the segfault persists.

I guess you'll have to try a more recent qt-devel version :)

> FWIW, my initial geometry is 957x843, font is usually LuciduxSans 7.
>
> Strace output didn't provide much of an apparent clue, just the
> SIGSEGV.
>
> Oh, kernel is 2.6.19.1 -- not important I'd say.
>
> Thanks for your time.

Ciao,

--alessandro

"but I thought that I should let you know
the things that I don't always show
might not be worth the time it took"

(Steve Wynn, 'If My Life Was An Open Book')

2007-01-04 09:43:50

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

Hi,
there is SIGSEGV happens in qconf.cc:995

str += print_filter(sym->name);

but sym points to 0x1. To reproduce the error just do:

1) make xconfig (with Options->Show Debug Info unchecked)
2) go to Networking->Networking Options->Network packet filtering framework (Netfilter)->
Network packet filtering framework (Netfilter) and the line "<| .." must be selected
then just turn on Options->Show Debug info menu and you'll get:

make[1]: *** [xconfig] Segmentation fault
make: *** [xconfig] Error 2

gdb shows:

Program received signal SIGSEGV, Segmentation fault.
0x08069834 in ConfigInfoView::symbolInfo (this=0x85ae750) at qconf.cc:995
(gdb) bt
#0 0x08069834 in ConfigInfoView::symbolInfo (this=0x85ae750) at qconf.cc:995
#1 0x080696a9 in ConfigInfoView::setShowDebug (this=0x85ae750, b=true)
at qconf.cc:946
#2 0x080648bf in ConfigInfoView::qt_invoke (this=0x85ae750, _id=161,
_o=0xbfc56ea0) at qconf.moc:544
#3 0xb7a5b1cc in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#4 0xb7a5b800 in QObject::activate_signal_bool ()
from /usr/qt/3/lib/libqt-mt.so.3
#5 0xb7dbd44b in QAction::toggled () from /usr/qt/3/lib/libqt-mt.so.3
#6 0xb7ba0876 in QAction::setOn () from /usr/qt/3/lib/libqt-mt.so.3
#7 0xb7ba0a94 in QAction::internalActivation ()
from /usr/qt/3/lib/libqt-mt.so.3
#8 0xb7dbd544 in QAction::qt_invoke () from /usr/qt/3/lib/libqt-mt.so.3
#9 0xb7a5b1cc in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#10 0xb7d9cc7a in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3
#11 0xb7a753bd in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3
#12 0xb7b62c09 in QPopupMenu::mouseReleaseEvent ()
from /usr/qt/3/lib/libqt-mt.so.3
#13 0xb7a915b7 in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
#14 0xb79fe9df in QApplication::internalNotify ()
from /usr/qt/3/lib/libqt-mt.so.3
#15 0xb79fde44 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#16 0xb79937c1 in QETWidget::translateMouseEvent ()
from /usr/qt/3/lib/libqt-mt.so.3
#17 0xb7991835 in QApplication::x11ProcessEvent ()
from /usr/qt/3/lib/libqt-mt.so.3
#18 0xb79a8bb4 in QEventLoop::processEvents ()
from /usr/qt/3/lib/libqt-mt.so.3
#19 0xb7a10d18 in QEventLoop::enterLoop () from /usr/qt/3/lib/libqt-mt.so.3
#20 0xb7a10bc8 in QEventLoop::exec () from /usr/qt/3/lib/libqt-mt.so.3
#21 0xb79fec31 in QApplication::exec () from /usr/qt/3/lib/libqt-mt.so.3
#22 0x08074453 in main (ac=2, av=0xbfc57ac4) at qconf.cc:1736
(gdb) p sym
$20 = (symbol *) 0x1

I'm investigating this...

--
- Cyrill

2007-01-04 17:15:31

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

Please try patch I've enveloped. And write me does it fix your problem?

--
- Cyrill


Attachments:
(No filename) (87.00 B)
patch.diff (1.20 kB)
Download all attachments

2007-01-04 17:29:10

by Randy Dunlap

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

On Thu, 4 Jan 2007 20:14:11 +0300 Cyrill V. Gorcunov wrote:

> Please try patch I've enveloped. And write me does it fix your problem?

Yes, it does for me. Thanks.

---
~Randy

2007-01-05 21:28:53

by Alessandro Suardi

[permalink] [raw]
Subject: Re: qconf: reproducible segfault

On 1/5/07, Cyrill V. Gorcunov <[email protected]> wrote:
> On Friday 05 January 2007 00:16, you wrote:
> | On 1/4/07, Cyrill V. Gorcunov <[email protected]> wrote:
> | > Hi,
> | > there is SIGSEGV happens in qconf.cc:995
> | >
> | > str += print_filter(sym->name);
> | >
> | > but sym points to 0x1. To reproduce the error just do:
> | >
> | > 1) make xconfig (with Options->Show Debug Info unchecked)
> | > 2) go to Networking->Networking Options->Network packet filtering framework (Netfilter)->
> | > Network packet filtering framework (Netfilter) and the line "<| .." must be selected
> | > then just turn on Options->Show Debug info menu and you'll get:
> | >
> | > make[1]: *** [xconfig] Segmentation fault
> | > make: *** [xconfig] Error 2
> |
> | Cyrill, Randy - I feel like an idiot but I can't really reproduce this :(
> |
> | I'm trimming lkml from the CC list to upload and attach two screenshots
> | where I enabled Show Debug Info at what I guess are the two possible
> | interpretations of where the Select highlight should be - and neither
> | cause a core dump for me.
> |
> | What am I mistaking ?
> |
> | Thanks, ciao,

> Hi Alessandro,
>
> see enveloped scrshot to keep in mind how the qconf is looking at moment we
> get SYGSEGV error - you just need to set Options->Show Debug and oops ;)
> I don't know may be QT dev version does handling such exceptions itself and if
> SYGSEVG happens it just ignore it... But the qconf really have the error :(.

That's ok, apparently FC6's qt-devel-3.3.7 libs are capable of
handling the problem (I can bring qconf to the exact screen
you showed, Options->Show Debug Info does _not_ crash).

And of course it's better to fix the problem in qconf.cc rather
than letting qt libs handle it :)

Thanks,

--alessandro

"but I thought that I should let you know
the things that I don't always show
might not be worth the time it took"

(Steve Wynn, 'If My Life Was An Open Book')