On Wed, Feb 06, 2008 at 01:33:17AM +0600, Roman S Dubtsov wrote: > Hi, > > I'm starting a new thread regarding crashes on background changes coming from > gnome-settings-daemon. Now it is about FvwmButtons =) > > After Dominik's update to error handler, I was able to obtain core dump for > FvwmButtons. Gdb log attached (I could not figure out what's wrong there, but > I guess something has happened in previous loop iteration in > change_colorset(). Error message stayed the same: > > ComboPanel: Cause of next X Error. > Error: 13 (BadGC (invalid GC parameter)) > Major opcode of failed request: 70 (PolyFillRectangle) > Minor opcode of failed request: 0 > Resource id of failed request: 0xe00020 > Leaving a core dump now > > I have inseted two more XSyncs in FvwmButtons.c for debugging purposes: one > in > SetTransparentBackground() and another one in > change_swallowed_window_colorset(), but backtrace did not change. > > Hope this will be helpful. I still has the core dump so I can retrieve some > more information if you need it.
I think the crash is caused by the call to XFillRectangle in libs/Colorset.c, line 452. Again, the cs_pixmap probably has been destroyed by the time the gc is used. I have committed a patch to CVS that may solve the problem. Can you try it out please? > GNU gdb 6.7.1-debian > Copyright (C) 2007 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 "i486-linux-gnu"... > Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1". > > warning: Can't read pathname for load map: Input/output error. > Reading symbols from /usr/lib/libXft.so.2...done. > Loaded symbols for /usr/lib/libXft.so.2 > Reading symbols from /usr/lib/libX11.so.6...done. > Loaded symbols for /usr/lib/libX11.so.6 > Reading symbols from /usr/lib/libfreetype.so.6...done. > Loaded symbols for /usr/lib/libfreetype.so.6 > Reading symbols from /usr/lib/libz.so.1...done. > Loaded symbols for /usr/lib/libz.so.1 > Reading symbols from /usr/lib/libfontconfig.so.1...done. > Loaded symbols for /usr/lib/libfontconfig.so.1 > Reading symbols from /usr/lib/libXrender.so.1...done. > Loaded symbols for /usr/lib/libXrender.so.1 > Reading symbols from /usr/lib/libXpm.so.4...done. > Loaded symbols for /usr/lib/libXpm.so.4 > Reading symbols from /usr/lib/libSM.so.6...done. > Loaded symbols for /usr/lib/libSM.so.6 > Reading symbols from /usr/lib/libICE.so.6...done. > Loaded symbols for /usr/lib/libICE.so.6 > Reading symbols from /usr/lib/libXinerama.so.1...done. > Loaded symbols for /usr/lib/libXinerama.so.1 > Reading symbols from /usr/lib/libXext.so.6...done. > Loaded symbols for /usr/lib/libXext.so.6 > Reading symbols from /lib/i686/cmov/libm.so.6...done. > Loaded symbols for /lib/i686/cmov/libm.so.6 > Reading symbols from /usr/lib/libXcursor.so.1...done. > Loaded symbols for /usr/lib/libXcursor.so.1 > Reading symbols from /usr/lib/libfribidi.so.0...done. > Loaded symbols for /usr/lib/libfribidi.so.0 > Reading symbols from /usr/lib/libpng12.so.0...done. > Loaded symbols for /usr/lib/libpng12.so.0 > Reading symbols from /usr/lib/librsvg-2.so.2...done. > Loaded symbols for /usr/lib/librsvg-2.so.2 > Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...done. > Loaded symbols for /usr/lib/libgdk_pixbuf-2.0.so.0 > Reading symbols from /usr/lib/libgobject-2.0.so.0...done. > Loaded symbols for /usr/lib/libgobject-2.0.so.0 > Reading symbols from /usr/lib/libgmodule-2.0.so.0...done. > Loaded symbols for /usr/lib/libgmodule-2.0.so.0 > Reading symbols from /lib/i686/cmov/libdl.so.2...done. > Loaded symbols for /lib/i686/cmov/libdl.so.2 > Reading symbols from /usr/lib/libglib-2.0.so.0...done. > Loaded symbols for /usr/lib/libglib-2.0.so.0 > Reading symbols from /usr/lib/libcairo.so.2...done. > Loaded symbols for /usr/lib/libcairo.so.2 > Reading symbols from /lib/i686/cmov/libc.so.6...done. > Loaded symbols for /lib/i686/cmov/libc.so.6 > Reading symbols from /usr/lib/libxcb-xlib.so.0...done. > Loaded symbols for /usr/lib/libxcb-xlib.so.0 > Reading symbols from /usr/lib/libxcb.so.1...done. > Loaded symbols for /usr/lib/libxcb.so.1 > Reading symbols from /usr/lib/libexpat.so.1...done. > Loaded symbols for /usr/lib/libexpat.so.1 > Reading symbols from /usr/lib/libXau.so.6...done. > Loaded symbols for /usr/lib/libXau.so.6 > Reading symbols from /lib/ld-linux.so.2...done. > Loaded symbols for /lib/ld-linux.so.2 > Reading symbols from /usr/lib/libXfixes.so.3...done. > Loaded symbols for /usr/lib/libXfixes.so.3 > Reading symbols from /usr/lib/libgsf-1.so.114...done. > Loaded symbols for /usr/lib/libgsf-1.so.114 > Reading symbols from /usr/lib/libcroco-0.6.so.3...done. > Loaded symbols for /usr/lib/libcroco-0.6.so.3 > Reading symbols from /usr/lib/libxml2.so.2...done. > Loaded symbols for /usr/lib/libxml2.so.2 > Reading symbols from /usr/lib/libpangoft2-1.0.so.0...done. > Loaded symbols for /usr/lib/libpangoft2-1.0.so.0 > Reading symbols from /usr/lib/libpangocairo-1.0.so.0...done. > Loaded symbols for /usr/lib/libpangocairo-1.0.so.0 > Reading symbols from /usr/lib/libpango-1.0.so.0...done. > Loaded symbols for /usr/lib/libpango-1.0.so.0 > Reading symbols from /usr/lib/libpcre.so.3...done. > Loaded symbols for /usr/lib/libpcre.so.3 > Reading symbols from /usr/lib/libXdmcp.so.6...done. > Loaded symbols for /usr/lib/libXdmcp.so.6 > Reading symbols from /lib/i686/cmov/libpthread.so.0...done. > Loaded symbols for /lib/i686/cmov/libpthread.so.0 > Reading symbols from /lib/libbz2.so.1.0...done. > Loaded symbols for /lib/libbz2.so.1.0 > Core was generated by > `/home/busa/apps/fvwm-cvs/libexec/fvwm/2.5.25/FvwmButtons 8 5 none 0 8 -g > 816x35'. > Program terminated with signal 11, Segmentation fault. > #0 PrintXErrorAndCoredump (dpy=0x8091de0, error=0xbf82e60c, > MyName=0x808b068 "ComboPanel") at XError.c:85 > 85 *nullp = 99; > (gdb) bt > #0 PrintXErrorAndCoredump (dpy=0x8091de0, error=0xbf82e60c, > MyName=0x808b068 "ComboPanel") at XError.c:85 > #1 0x0804fa97 in myErrorHandler (dpy=0x8091de0, event=0xbf82e60c) at > FvwmButtons.c:577 > #2 0xb7e8c8b3 in _XError () from /usr/lib/libX11.so.6 > #3 0xb7e94069 in ?? () from /usr/lib/libX11.so.6 > #4 0x08091de0 in ?? () > #5 0x080c2600 in ?? () > #6 0xbf82e6b8 in ?? () > #7 0xb7e934c1 in _XGetXCBBuffer () from /usr/lib/libX11.so.6 > #8 0xb7e943ea in _XReply () from /usr/lib/libX11.so.6 > #9 0xb7e88338 in XSync () from /usr/lib/libX11.so.6 > #10 0x0804dfcb in change_colorset (colorset=11, Event=0x0) at > FvwmButtons.c:2705 > #11 0x0805063a in process_message (type=262144, body=0x8088b50) at > FvwmButtons.c:2735 > #12 0x08050939 in My_FNextEvent (Dpy=0x8091de0, event=0xbf82ea68) at > FvwmButtons.c:2443 > #13 0x08051680 in Loop () at FvwmButtons.c:1068 > #14 0x08052fc6 in main (argc=9, argv=0xbf82ed04) at FvwmButtons.c:878 > (gdb) info locals > msg = "BadGC (invalid GC parameter)", '\0' <repeats 227 times> > suc = <value optimized out> > (gdb) frame 10 > #10 0x0804dfcb in change_colorset (colorset=11, Event=0x0) at > FvwmButtons.c:2705 > 2705 XSync(Dpy, 0); > (gdb) list > 2700 { > 2701 if (b->swallow&b_FvwmModule) > 2702 { > 2703 /* the bg has changed send the > info to > 2704 * modules */ > 2705 XSync(Dpy, 0); > 2706 send_bg_change_to_module(b, > Event); > 2707 } > 2708 else if > (CSET_IS_TRANSPARENT_PR(b->colorset) && > 2709 > !buttonBackgroundButton(b->parent, NULL)) > (gdb) info locals > ub = (button_info *) 0x80a0448 > b = (button_info *) 0x80a5e90 > button = 20 > (gdb) info args > colorset = 11 > Event = (XEvent *) 0x0 > (gdb) quit Ciao Dominik ^_^ ^_^ -- Dominik Vogt