Awn

segfault when closing gedit and not saving changes

Bug #158498 reported by Michael Rooney
8
Affects Status Importance Assigned to Milestone
Awn
Fix Released
Medium
Unassigned

Bug Description

I am using Ubuntu 7.10. This seems to affect all branches, as it is reproducible for me in libawn-draw-effects, trunk, and 0.2-stable-testing.

To reproduce:

1) Launch AWN
2) Launch gedit (I did it via Alt+F2, typing gedit, and hitting Enter)
3) Type anything, then hit Alt+F4 to close. A dialog will appear asking about saving. Select "Close without Saving".
4) The gedit icon will disappear and as soon as it does, bam, segfault.

Here is some hopefully useful information:

(avant-window-navigator:21354): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<invalid>'

(avant-window-navigator:21354): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GtkWidget'

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1227069776 (LWP 21354)]
0x080570aa in _task_wnck_name_hide (task=0x8295318) at awn-task.c:764
764 awn_title_hide (AWN_TITLE(priv->title), GTK_WIDGET(task));
(gdb) <gtk.gdk.Pixbuf object at 0x82c4194 (GdkPixbuf at 0x83ac658)>
<gtk.gdk.Pixbuf object at 0x82c4194 (GdkPixbuf at 0x83acb58)>
bt
#0 0x080570aa in _task_wnck_name_hide (task=0x8295318) at awn-task.c:764
#1 0xb74248d6 in ?? () from /usr/lib/libglib-2.0.so.0
#2 0x08295318 in ?? ()
#3 0xb72c78ac in __pthread_mutex_unlock_usercnt ()
   from /lib/tls/i686/cmov/libpthread.so.0
#4 0xb742411c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#5 0xb742755f in ?? () from /usr/lib/libglib-2.0.so.0
#6 0x0808b748 in ?? ()
#7 0x00000000 in ?? ()

Related branches

Revision history for this message
Mark Lee (malept) wrote :

The following is a patch by moonbeam (formatting changes by me) with a brief description by its author (paraphrased):

The patch keeps _shrink_widget() from proceeding with the destruction of task if there is a timer attached to _task_wnck_name_hide() for that task. Once timer_count is 0, it is safe to remove the task. It could just be a boolean flag, but I'm not sure if it might not be needed for other things. Before adding a timer for a task, it gets incremented. When the timer gets killed, the function decrements it. As it's currently written, I could just make it a boolean and set it to TRUE before attaching the timer and then set it to falls in the callback. But, there are enough timers in that code that I'm thinking that something similar might be needed in other places.

Revision history for this message
Sebastian Billaudelle (sbillaudelle) wrote :

Hi folks!

Its not only with gedit. Its when you close two windows at the same time.
Its in the 136. In the version before there wasn't a bug like this.
Is it because of the libwnck changes?

cheers stein

Revision history for this message
Michael Rooney (mrooney) wrote :

Thanks Sebastian for the enlightening response. I figured it wasn't gedit specifically but I couldn't figure out what was special about the steps to reproduce it.

If it isn't a bug in the versions before, I too would be interested in knowing what made it appear.

Revision history for this message
Sebastian Billaudelle (sbillaudelle) wrote :

Hi folks!

In 138 it's k ithink...
I've updated now and I wasn't able to reproduce it...

cheers stein

Revision history for this message
moonbeam (rcryderman) wrote :

Regarding this not appearing in the earlier version. I suspect the bug was always potentially there but it just wasn't actually triggering a crash in most (any?) cases. My suspicion is that the other fixes just helped this bug grow up :-)

Michal Hruby (mhr3)
Changed in awn:
importance: Undecided → Medium
status: New → Fix Committed
Revision history for this message
Andrew Starr-Bochicchio (andrewsomething) wrote :

0.2.1 released

Changed in awn:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.