! 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 !
panel freezes occasionally
Status:
RESOLVED: FIXED
Product:
Xfce4-panel

Comments

Description Nikolas.Arend 2004-11-02 10:06:07 CET
The panel freezes occasionally and must be SIGKILL'ed. This started happening
some time ago, but so seldomly that I was too lazy to file a bug report ;-) 
Sorry I can't be more specific, yet, but it occurs to my that it happens when
another application window is just starting/showing up and the panel is unhiding
(I'm running it in autohide mode) at the very same time. Then a gray bar remains
where the panel should have been and I would have to kill and restart it.

I have two other plugins running, the battery (0.2.0) and the mixer
(CVS-2004110117) plugin. I'll run the panel within gdb for now and hope to be
able to send a backtrace soon.

Panel (and all other core components) version: CVS-20041101

Cheers,   Nick
Comment 1 Nikolas.Arend 2004-11-02 10:37:51 CET
Just now the panel froze again, I'll send you what I got out of gdb. Dunno
whether it tells you much. Just tell me what else you would need my to do.

Nick.



Program received signal SIGINT, Interrupt.
[Switching to Thread -150531264 (LWP 3932)]
0x008178e0 in correct_total (weights=0xf583cc04, n_x=161, n_y=161, 
    total=76481, overall_alpha=1) at pixops.c:961
961     pixops.c: No such file or directory.
        in pixops.c
(gdb) where
#0  0x008178e0 in correct_total (weights=0xf583cc04, n_x=161, n_y=161, 
    total=76481, overall_alpha=1) at pixops.c:961
#1  0x00817a7f in make_filter_table (filter=0xfeef0760) at pixops.c:1001
#2  0x00817b02 in pixops_process (dest_buf=0x8669710 "\220\220f\b ", 
    render_x0=0, render_y0=0, render_x1=1, render_y1=1, dest_rowstride=4, 
    dest_channels=4, dest_has_alpha=1, src_buf=0x82656d0 "", src_width=160, 
    src_height=160, src_rowstride=640, src_channels=4, src_has_alpha=1, 
    scale_x=0.0062500000000000003, scale_y=0.0062500000000000003, check_x=0, 
    check_y=0, check_size=0, color1=0, color2=0, filter=0xfeef0760, 
    line_func=0x817280 <scale_line>, pixel_func=0x8171f0 <scale_pixel>)
    at pixops.c:1037
#3  0x00818faa in _pixops_scale (dest_buf=0x8669710 "\220\220f\b ", 
    render_x0=0, render_y0=0, render_x1=1, render_y1=1, dest_rowstride=4, 
    dest_channels=4, dest_has_alpha=1, src_buf=0x82656d0 "", src_width=160, 
    src_height=160, src_rowstride=640, src_channels=4, src_has_alpha=1, 
    scale_x=0.0062500000000000003, scale_y=0.0062500000000000003, 
    interp_type=PIXOPS_INTERP_BILINEAR) at pixops.c:1595
#4  0x00812be8 in gdk_pixbuf_scale (src=0xfffffffd, dest=0x86690d8, dest_x=0, 
    dest_y=-6, dest_width=1, dest_height=1, offset_x=160.9375, 
    offset_y=0.94999999999997453, scale_x=0.5, scale_y=0.0011718749999999447, 
    interp_type=23859) at gdk-pixbuf-scale.c:75
#5  0x008131e1 in gdk_pixbuf_scale_simple (src=0x827e908, dest_width=1, 
    dest_height=1, interp_type=23859) at gdk-pixbuf-scale.c:243
#6  0x0039150f in xfce_scaled_image_set_from_pixbuf ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libxfcegui4.so.3
#7  0x0039138e in xfce_scaled_image_set_from_pixbuf ()
   from /usr/lib/libxfcegui4.so.3
#8  0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#9  0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#10 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#11 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#12 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#13 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#14 0x03d94ea1 in gtk_widget_size_allocate (widget=0x81b9b60, 
    allocation=0xfeef0da0) at gtkwidget.c:2709
#15 0x03be0f1c in gtk_button_size_allocate (widget=0x80a66d0, 
    allocation=0xfeef11e0) at gtkbutton.c:990
#16 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#17 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#18 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#19 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#20 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#21 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#22 0x03d94ea1 in gtk_widget_size_allocate (widget=0x80a66d0, 
    allocation=0xfeef1230) at gtkwidget.c:2709
#23 0x03c3e6bf in gtk_event_box_size_allocate (widget=0x819a0e0, 
---Type <return> to continue, or q <return> to quit---
    allocation=0xfeef1670) at gtkeventbox.c:583
#24 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#25 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#26 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#27 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#28 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#29 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#30 0x03d94ea1 in gtk_widget_size_allocate (widget=0x819a0e0, 
    allocation=0xfeef16f0) at gtkwidget.c:2709
#31 0x03d8cd4e in gtk_vbox_size_allocate (widget=0x825afc8, 
    allocation=0xfeef1b30) at gtkvbox.c:260
#32 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#33 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#34 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#35 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#36 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#37 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#38 0x03d94ea1 in gtk_widget_size_allocate (widget=0x825afc8, 
    allocation=0xfeef1bb0) at gtkwidget.c:2709
#39 0x03bd8895 in gtk_alignment_size_allocate (widget=0x81a2a50, 
    allocation=0xfeef1ff0) at gtkalignment.c:523
#40 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libgobject-2.0.so.0
#41 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#42 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#43 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#44 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#45 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#46 0x03d94ea1 in gtk_widget_size_allocate (widget=0x81a2a50, 
    allocation=0xfeef2070) at gtkwidget.c:2709
#47 0x03c6811c in gtk_hbox_size_allocate (widget=0x80c3f40, 
    allocation=0xfeef24b0) at gtkhbox.c:268
#48 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#49 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#50 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#51 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#52 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#53 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#54 0x03d94ea1 in gtk_widget_size_allocate (widget=0x80c3f40, 
    allocation=0xfeef2530) at gtkwidget.c:2709
#55 0x03c6811c in gtk_hbox_size_allocate (widget=0x80c3ef0, 
    allocation=0xfeef2970) at gtkhbox.c:268
#56 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#57 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#58 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#59 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#60 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#61 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#62 0x03d94ea1 in gtk_widget_size_allocate (widget=0x80c3ef0, 
    allocation=0xfeef29d0) at gtkwidget.c:2709
#63 0x03c643b2 in gtk_frame_size_allocate (widget=0x80c38a8, 
    allocation=0xfffffffd) at gtkframe.c:618
#64 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#65 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#66 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#67 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#68 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#69 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#70 0x03d94ea1 in gtk_widget_size_allocate (widget=0x80c38a8, 
    allocation=0xfeef2e50) at gtkwidget.c:2709
#71 0x03da3e39 in gtk_window_size_allocate (widget=0x80c1c70, 
    allocation=0xfeef3290) at gtkwindow.c:4014
#72 0x009891ee in g_cclosure_marshal_VOID__BOXED ()
   from /usr/lib/libgobject-2.0.so.0
#73 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#74 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#75 0x009879be in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#76 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#77 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#78 0x03d94ea1 in gtk_widget_size_allocate (widget=0x80c1c70, 
    allocation=0x80c1c94) at gtkwidget.c:2709
#79 0x03c18f9c in gtk_container_resize_children (container=0x80c1c70)
    at gtkcontainer.c:1235
#80 0x03da566f in gtk_window_move_resize (window=0x80c1c70) at gtkwindow.c:5344
#81 0x00988691 in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#82 0x009744f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#83 0x00974160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#84 0x00987bc5 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#85 0x00987157 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#86 0x00987454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#87 0x03c18e67 in gtk_container_check_resize (container=0x80c1c70)
    at gtkcontainer.c:1189
#88 0x03c18c2f in gtk_container_idle_sizer (data=0x0) at gtkcontainer.c:1113
#89 0x0090d1f3 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#90 0x00909e4a in g_main_depth () from /usr/lib/libglib-2.0.so.0
#91 0x0090af28 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#92 0x0090b260 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#93 0x0090b8a3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#94 0x03c97813 in gtk_main () at gtkmain.c:1172
#95 0x0805657e in main ()
Comment 2 Jasper Huijsmans editbugs 2004-11-02 11:45:56 CET
Hey, I have no idea why it would hang on that particular piece of code. 

When the hang occurs, does the panel freeze, or does it go into some infinite
loop, i.e. does the CPU usage of the panel go to 0 or to 100%?

If anyone else has an idea, I'd love to hear it.

Thanks,
Jasper
Comment 3 Nikolas.Arend 2004-11-02 11:56:51 CET
I checked the CPU usage once after the panel froze (not this time,
unfortunately) and as far as I remember, the panel's CPU usage went up, but not
that it would block the entire CPU. I'll investigate more carefully next time it
crashes, but cannot say when this will be as it happens quite randomly.
My impression is, that it's stuck in an infinite loop rather than "just hanging".

Nick.
Comment 4 Jasper Huijsmans editbugs 2004-11-02 13:02:37 CET
Created attachment 90 
patch to libxfcegui4

It would be very helpful if you could rebuild libxfcegui4 using this patch for
xfce_scaled_image.c .

I could reproduce the freeze, and I haven't been able to with this patch.
Comment 5 Nikolas.Arend 2004-11-02 13:10:17 CET
I will apply the patch, rebuild libxfcegui4 and let you know if the freeze
happens again. I presume the patch is against the current CVS version?

Btw. how did you reproduce the freeze? That'd very helpful for me.


Nick
Comment 6 Jasper Huijsmans editbugs 2004-11-02 13:22:42 CET
(In reply to comment #5)
> I will apply the patch, rebuild libxfcegui4 and let you know if the freeze
> happens again. I presume the patch is against the current CVS version?
> 

Yes, but should apply to beta2 as well. I have just updated CVS, so if you wait
for anoncvs to get the update, you can get it from there.

> Btw. how did you reproduce the freeze? That'd very helpful for me.
> 

Not clear, I'm afraid. It's a race condition I think and appears rather randomly.

I once got the freeze simply by toggling on and off autohide and two times doing
what you suggested, unhiding while at the same time opening a new window. I'm
also running it on a remote X display over a 50kb/s link, so that will make a
difference as well.
Comment 7 Nikolas.Arend 2004-11-02 17:19:45 CET
Looks good so far, I'd say we let this rest and I report again before 4.2 gets
released, or as soon as any freezing happens despite the patch.

Regards,   Nick.
Comment 8 Jasper Huijsmans editbugs 2004-11-06 10:30:24 CET
Marking this as fixed, please verify after next re-release (RC1).

Bug #450

Reported by:
Nikolas.Arend
Reported on: 2004-11-02
Last modified on: 2010-11-20

People

Assignee:
Nick Schermer
CC List:
0 users

Version

Attachments

patch to libxfcegui4 (3.51 KB, patch)
2004-11-02 13:02 CET , Jasper Huijsmans
no flags

Additional information