Debug build reveals this: DBG[main.c:541] main(): xfwm4 starting DBG[main.c:412] initialize(): xfwm4 starting, using GTK+-2.18.5 composite event base: 0 composite error base: 0 composite version: 0.4 damage event base: 103 damage error base: 162 fixes event base: 99 fixes error base: 153 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:451] myDisplayGrabServer(): grabbing server DBG[display.c:455] myDisplayGrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:471] myDisplayUngrabServer(): ungrabbing server DBG[display.c:475] myDisplayUngrabServer(): grabs : 0 DBG[xfce-sm-client.c:723] xfce_sm_client_parse_argv(): setting restart and clone commands (/usr/bin/xfwm4, /usr/bin/xfwm4) TRACE[xfce-sm-client.c:1251] xfce_sm_client_set_property_from_command(): entering (RestartCommand, 0x652fe0, APPEND) TRACE[xfce-sm-client.c:1251] xfce_sm_client_set_property_from_command(): entering (CloneCommand, 0x653050, REMOVE) DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:451] myDisplayGrabServer(): grabbing server DBG[display.c:455] myDisplayGrabServer(): grabs : 1 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:471] myDisplayUngrabServer(): ungrabbing server DBG[display.c:475] myDisplayUngrabServer(): grabs : 0 XError: BadWindow (invalid Window parameter) ==> XID 0x400148, Request 3, Error 3 <== XError: BadWindow (invalid Window parameter) ==> XID 0x400148, Request 3, Error 3 <==
I do not see it crashing in your log. Can you please provide a gdb backtrace instead? Does it start from a terminal?
gtk+-2 : version 2.18.8 (2.18.5 has same results) backtrace: (gdb) run Starting program: /usr/bin/xfwm4 [Thread debugging using libthread_db enabled] DBG[main.c:541] main(): xfwm4 starting DBG[main.c:412] initialize(): xfwm4 starting, using GTK+-2.18.5 composite event base: 0 composite error base: 0 composite version: 0.4 damage event base: 103 damage error base: 162 fixes event base: 99 fixes error base: 153 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:451] myDisplayGrabServer(): grabbing server DBG[display.c:455] myDisplayGrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 3 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 DBG[display.c:463] myDisplayUngrabServer(): entering myDisplayUngrabServer DBG[display.c:475] myDisplayUngrabServer(): grabs : 1 DBG[display.c:448] myDisplayGrabServer(): entering myDisplayGrabServer DBG[display.c:455] myDisplayGrabServer(): grabs : 2 Program received signal SIGSEGV, Segmentation fault. 0x00007ffff60de790 in gdk_pixbuf_get_width () from /usr/lib/../lib64/libgdk_pixbuf-2.0.so.0 (gdb) bt #0 0x00007ffff60de790 in gdk_pixbuf_get_width () from /usr/lib/../lib64/libgdk_pixbuf-2.0.so.0 #1 0x0000000000429562 in xfwmPixmapRenderGdkPixbuf (pm=0x73f350, pixbuf=0x0) at mypixmap.c:912 #2 0x000000000040cb63 in clientUpdateIconPix (c=0x73ef50) at client.c:1508 #3 0x0000000000410898 in clientFrame (display_info=0x67f600, w=<value optimized out>, recapture=<value optimized out>) at client.c:1946 #4 0x0000000000411161 in clientFrameAll (screen_info=0x6a9400) at client.c:2139 #5 0x000000000042451b in initialize (argc=<value optimized out>, argv=<value optimized out>) at main.c:514 #6 main (argc=<value optimized out>, argv=<value optimized out>) at main.c:574
I suspect this commit to be the culprit: http://git.xfce.org/xfce/xfwm4/commit/?id=c1a867e65bf68dda3be3d48edcb63d4305192f7e And more precisely that part: - return xfce_inline_icon_at_size (default_icon_data, width, height); + return NULL; /*xfce_inline_icon_at_size (default_icon_data, width, height);*/ Why this change is part of a commit about session management is beyond me.
Can you try with git commit e6bdc3b?
Err, I mean 1e543b7
(In reply to comment #5) > Err, I mean 1e543b7 yep that one fixed it