After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 166201 - crash in smooth_draw_flat_box
crash in smooth_draw_flat_box
Status: RESOLVED FIXED
Product: gtk-engines
Classification: Deprecated
Component: general
unspecified
Other Linux
: High critical
: ---
Assigned To: gtk-engines maintainers
gtk-engines maintainers
: 166721 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-02-03 19:38 UTC by William Jon McCann
Modified: 2005-02-09 14:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (5.23 KB, patch)
2005-02-03 23:55 UTC, William Jon McCann
none Details | Review

Description William Jon McCann 2005-02-03 19:38:12 UTC
I get the following crash when activating a row in the rhythmbox tree view
(using gtk-engines from HEAD and gtk-2.6.x):

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 10329)

  • #0 ??
  • #1 smooth_draw_flat_box
    at ./src/engine/smooth_gtk2_drawing.c line 2772
  • #2 IA__gtk_paint_flat_box
    at gtkstyle.c line 6116
  • #3 gtk_entry_expose
    at gtkentry.c line 1395
  • #4 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #5 g_type_class_meta_marshal
    at gclosure.c line 514
  • #6 IA__g_closure_invoke
    at gclosure.c line 437
  • #7 signal_emit_unlocked_R
    at gsignal.c line 2523
  • #8 IA__g_signal_emit_valist
    at gsignal.c line 2254
  • #9 IA__g_signal_emit
    at gsignal.c line 2288
  • #10 gtk_widget_event_internal
    at gtkwidget.c line 3626
  • #11 IA__gtk_main_do_event
    at gtkmain.c line 1342
  • #12 gdk_window_process_updates_internal
    at gdkwindow.c line 2182
  • #13 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2235
  • #14 gtk_container_idle_sizer
    at gtkcontainer.c line 1117
  • #15 g_idle_dispatch
    at gmain.c line 3821
  • #16 IA__g_main_context_dispatch
    at gmain.c line 1947
  • #17 g_main_context_iterate
    at gmain.c line 2578
  • #18 IA__g_main_loop_run
    at gmain.c line 2782
  • #19 bonobo_main
    at bonobo-main.c line 297
  • #20 main
    at main.c line 268

Comment 1 Link Dupont 2005-02-03 20:05:03 UTC
Can you duplicate with any other music players? I have this same crashing
problem. I've seen it happen in Rhythmbox, Muine & my own music player, Lindele.
I've not seen this duplicated anywhere else before, until now. Also, it doesn't
seem to happen on any other TreeView applications; only music players... o_O
Comment 2 Andrew Johnson 2005-02-03 23:01:41 UTC
I think I found this. THANKS for the bt. I have been trying to get Link here to
give me an actual backtrace for months now since it won't happen for me.

The problem apears to be, a public shared variable called parent_class. Normally
not an issue, but somewhere in RB(maybe in gstreamer?) something also exports a
variable of the same name. So when flat_box is called in the right
circumstances, the wrong parent_class is accessed, and wham instant segfault. 

It should be a three line change, just give a namespace to the variable. AKA
rename parent_class -> smooth_theme_parent_class in each place its used and done.
Comment 3 William Jon McCann 2005-02-03 23:55:09 UTC
Created attachment 36954 [details] [review]
patch

Ok to commit?
Comment 4 Andrew Johnson 2005-02-04 02:29:46 UTC
Oh, Sorry, you didn't need to make this patch, I already changed it in Smooth
cvs 0.6 branch, I am just waiting to ensure it fixes the problem completely for
Link before I commit to gtk-engines and close the bug. If there are other things
contributing I want to know for sure before hand. 

If this does take care of everything I will be commiting within the next few hours.
Comment 5 Andrew Johnson 2005-02-04 03:25:40 UTC
Link just verifed my theory was correct and this does indeed fix it. Commited
and closing.
Comment 6 Andrew Johnson 2005-02-09 12:43:03 UTC
*** Bug 166721 has been marked as a duplicate of this bug. ***
Comment 7 Ronald Bultje 2005-02-09 14:20:09 UTC
I can verify that GStreamer indeed had a non-static parent_class (in
gstogmparse.c and gstnavigationtest.c; the first probably caused all those
crashes as it's loaded in when playing an ogg file), fixed in CVS.