! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
xfdesktop crash when changing the number of workspaces
Status:
RESOLVED: FIXED
Severity:
blocker
Product:
Xfdesktop
Component:
General

Comments

Description Olivier Fourdan editbugs 2005-12-17 11:54:51 CET
Starting program: /usr/bin/xfdesktop
*** glibc detected *** free(): invalid next size (fast): 0x0000000000776480 ***

Program received signal SIGABRT, Aborted.
0x00002aaaacdcc0fd in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00002aaaacdcc0fd in raise () from /lib/libc.so.6
#1  0x00002aaaacdcd82e in abort () from /lib/libc.so.6
#2  0x00002aaaace00be1 in __fsetlocking () from /lib/libc.so.6
#3  0x00002aaaace067ee in malloc_trim () from /lib/libc.so.6
#4  0x00002aaaace06b36 in free () from /lib/libc.so.6
#5  0x000000000040c2a8 in desktop_setup_grids (desktop=0x56d6a0, nws=1)
    at xfce-desktop.c:1320
#6  0x000000000040c572 in desktop_grid_do_resize (desktop=0x56d6a0)
    at xfce-desktop.c:860
#7  0x000000000040d6af in desktop_rootwin_watch_workarea (
    gxevent=0x7fffffdb89f0, event=Variable "event" is not available.
) at xfce-desktop.c:2228
#8  0x00002aaaab3b2a25 in gdk_events_pending ()
   from /usr/lib/libgdk-x11-2.0.so.0
#9  0x00002aaaab3b3557 in gdk_x11_register_standard_event_type ()
   from /usr/lib/libgdk-x11-2.0.so.0
#10 0x00002aaaab3b4dc8 in _gdk_events_queue ()
   from /usr/lib/libgdk-x11-2.0.so.0
#11 0x00002aaaab3b4f1e in _gdk_events_queue ()
   from /usr/lib/libgdk-x11-2.0.so.0
#12 0x00002aaaacc344bd in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#13 0x00002aaaacc3765f in g_main_context_check ()
   from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#14 0x00002aaaacc3790a in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#15 0x00002aaaab068360 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x00000000004081d7 in main (argc=1, argv=0x7fffffdb8d48) at main.c:304



Reproducible: Always
Steps to Reproduce:
1. Run xfce-setting-show workspaces
2. Change the number of workspaces
3. xfdesktop crashes
Comment 1 Brian J. Tarricone (not reading bugmail) 2005-12-17 19:00:04 CET
I'm getting a slightly different stacktrace, but that might be due to
optimisation on your copy.  Looks like another race condition.  xfdesktop
notices _NET_WORKAREA changing before it receives the workspace-created signal
from NetkScreen, so it assumes it's getting X values out of _NET_WORKAREA when
it really gets X+1, and overflows a buffer.

What do you think is the best way to do this?  Should I count the items in
_NET_WORKAREA, and if there are more items than I expect, assume a workspace is
being created, and then ignore the workspace-created signal later?  I guess what
I'm asking is, is there any other reason why the WM would set the number of
values in _NET_WORKAREA to something other than n_workspaces * 4?
Comment 2 Olivier Fourdan editbugs 2005-12-18 09:36:44 CET
(In reply to comment #1)

> What do you think is the best way to do this?  Should I count the items in
> _NET_WORKAREA, and if there are more items than I expect, assume a workspace is
> being created, and then ignore the workspace-created signal later?  I guess what
> I'm asking is, is there any other reason why the WM would set the number of
> values in _NET_WORKAREA to something other than n_workspaces * 4?

Nope, the workarea array defines the workarea for each workspace.
Comment 3 Brian J. Tarricone (not reading bugmail) 2006-01-25 07:11:48 CET
Ok, should be fixed now.

Bug #1278

Reported by:
Olivier Fourdan
Reported on: 2005-12-17
Last modified on: 2009-07-14

People

Assignee:
Brian J. Tarricone (not reading bugmail)
CC List:
0 users

Version

Attachments

Additional information