[Qt-interest] SIGSEGV in QPixmapCache::Clear()

Josiah Bryan jbryan at productiveconcepts.com
Thu Oct 29 17:01:53 CET 2009



R. Reucher wrote:
> On Thu, 29 Oct 2009 10:29:02 -0400, Josiah Bryan wrote:
>> Josiah Bryan wrote:
>>> Using qt from Git as of early October (qmake claims qt 4.7.0).
> What? 4.7.0?
> 
>>> My program makes heavy use of QPixmapCache with the cache limit set up
>>> around 512MB or higher. Upon exiting the problem, it crashes just
>>> inside src/gui/image/qpixmapcache.cpp:623. Line 623 is
>>> "pm_cache()->clear();", but the backtrace (below) doesnt indicate where
>>> inside QPMCache::clear() that the program crashed. This is a very
>>> repeatable problem. Any ideas on how to fix?
>>>
>>> Program received signal SIGSEGV, Segmentation fault. [Switching to
>>> Thread -1208448752 (LWP 26921)] 0x00000019 in ?? ()
>>> (gdb) bt
>>> #0  0x00000019 in ?? ()
>>> #1  0x00d72d6f in QPixmapCache::clear () at image/qpixmapcache.cpp:623
>>> #2  0x00d06d2c in qt_cleanup () at kernel/qapplication_x11.cpp:2613 #3 
>>> 0x00c9648a in ~QApplication (this=0xbfb80e58) at
>>> kernel/qapplication.cpp:1079
>>> #4  0x0806f802 in main (argc=1, argv=0xbfb80f84) at main.cpp:184
>>>
>> I've still not found a way around this crashing upon exit. Anyone out
>> there (Trolltech?) have any comments or ideas on this?
> Why don't you first try with a stable Qt version (i. e., Qt 4.5.3) and 
> report back if it still crashes?!
> 

Thanks, René - that did help a little. At least the crash is different 
now. :-) I tested with Qt 4.5.2. Now it seems to be coming from 
somewhere inside  libX11 as the result of some call from libeGL. 
Unfortunately, the stack trace below is even less helpful than before. 
Any thoughts?

X Error of failed request:  BadColor (invalid Colormap parameter)
   Major opcode of failed request:  79 (X_FreeColormap)
   Resource id in failed request:  0x9c00001
   Serial number of failed request:  4984
   Current serial number in output stream:  4986
dviz: xcb_xlib.c:41: xcb_xlib_lock: Assertion `!c->xlib.lock' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread -1208772880 (LWP 23346)]
0x00110402 in __kernel_vsyscall ()
(gdb) bt
#0  0x00110402 in __kernel_vsyscall ()
#1  0x03f67690 in raise () from /lib/libc.so.6
#2  0x03f68f91 in abort () from /lib/libc.so.6
#3  0x03f6093e in __assert_fail () from /lib/libc.so.6
#4  0x00344714 in xcb_xlib_lock () from /usr/lib/libxcb-xlib.so.0
#5  0x03173168 in ?? () from /usr/lib/libX11.so.6
#6  0x008651d5 in ?? () from /usr/lib/libGL.so.1
#7  0x08ef55b0 in ?? ()
#8  0x091146c8 in ?? ()
#9  0x09110818 in ?? ()
#10 0x008346d9 in ?? () from /usr/lib/libGL.so.1
#11 0x08ef55b0 in ?? ()
#12 0x00000003 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) q




-- 

-=-=-=-=-=-=-=-=-=-=-=-=-
Josiah Bryan
Productive Concepts, Inc.
jbryan at pciint.com
(765) 964-6009, ext. 224




More information about the Qt-interest-old mailing list