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 90483 - two radiobuttons in a group selected at the same time -> crashed
two radiobuttons in a group selected at the same time -> crashed
Status: RESOLVED FIXED
Product: libegg
Classification: Other
Component: other
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Libegg maintenance
Libegg maintenance
Depends on:
Blocks: 90477
 
 
Reported: 2002-08-11 17:30 UTC by Jorn Baayen
Modified: 2006-07-30 17:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
testcase (1.96 KB, text/plain)
2002-08-13 15:27 UTC, Jorn Baayen
Details

Description Jorn Baayen 2002-08-11 17:30:19 UTC
Description of Problem:

I have a set of radiobuttons, and sometimes, esp when deleting a button,
multiple buttons get selected. Then it crashes immediately or soon after
when clicking another button. Seeing this behaviour with the rhythmbox
sidebar (which is just a vbox with radiobuttons).

Steps to reproduce the problem:
1. Do some clicking around, removing and adding of groups in the
rhythmbox sidebar
2. 
3. 

Actual Results:

Crash

Expected Results:

Should just work like a normal radiobutton group

How often does this happen?

Always when clicking around a lot

Additional Information:




Debugging Information:

Backtrace was generated from '/opt/gnome/bin/rhythmbox'

[New Thread 1024 (LWP 19593)]
[New Thread 2049 (LWP 19598)]
[New Thread 1026 (LWP 19599)]
[New Thread 2051 (LWP 19600)]
0x420b4859 in wait4 () from /lib/i686/libc.so.6

Thread 1 (Thread 1024 (LWP 19593))

  • #0 wait4
    from /lib/i686/libc.so.6
  • #1 __DTOR_END__
    from /lib/i686/libc.so.6
  • #2 waitpid
    from /lib/i686/libpthread.so.0
  • #3 libgnomeui_module_info_get
    from /opt/gnome/lib/libgnomeui-2.so.0
  • #4 pthread_sighandler
    from /lib/i686/libpthread.so.0
  • #5 <signal handler called>
  • #6 gtk_button_clicked
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #7 gtk_radio_button_get_group
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #8 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #9 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #10 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #11 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #13 gtk_signal_emit
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #14 gtk_button_clicked
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #15 gtk_toggle_button_get_inconsistent
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #16 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #17 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #18 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #19 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #20 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #21 gtk_signal_emit
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #22 gtk_button_released
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #23 gtk_button_get_relief
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #24 gtk_propagate_event
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #25 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #26 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #27 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #28 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #29 gtk_signal_emit
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #30 gtk_widget_send_expose
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #31 gtk_propagate_event
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #32 gtk_main_do_event
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #33 gdk_add_client_message_filter
    from /opt/gnome/lib/libgdk-x11-2.0.so.0
  • #34 g_main_dispatch
    from /opt/gnome/lib/libglib-2.0.so.0
  • #35 g_main_context_dispatch
    from /opt/gnome/lib/libglib-2.0.so.0
  • #36 g_main_context_iterate
    from /opt/gnome/lib/libglib-2.0.so.0
  • #37 g_main_loop_run
    from /opt/gnome/lib/libglib-2.0.so.0
  • #38 bonobo_main
    from /opt/gnome/lib/libbonobo-2.so.0
  • #39 main
  • #40 __libc_start_main
    from /lib/i686/libc.so.6
  • #0 wait4
    from /lib/i686/libc.so.6

Comment 1 Owen Taylor 2002-08-11 18:47:04 UTC
I suspect that this might be linked link corruption occurring
elsewhere in the app.

A standalong test case would be really, really useful here.
Comment 2 Jorn Baayen 2002-08-13 15:26:28 UTC
attaching a testcase

this file goes in place of libegg/libegg/sidebar/test-sidebar.c

compile, start, click "Goo", remove the new button
(rightclick->delete), create a new button, tada.
Comment 3 Jorn Baayen 2002-08-13 15:27:09 UTC
Created attachment 10462 [details]
testcase
Comment 4 Owen Taylor 2002-09-20 22:20:19 UTC
Can you reproduce this using GtkRadioButton? Otherwise please
reassign to libegg.

Thanks.
Comment 5 Owen Taylor 2002-09-24 09:03:12 UTC
Please reopen from NEEDINFO if you add more information
Comment 6 Kjartan Maraas 2003-10-29 14:17:10 UTC
Any news on this issue?
Comment 7 Matthias Clasen 2004-06-11 16:48:19 UTC
No new info. Moving to libegg.
Comment 8 Vincent Untz 2006-07-29 13:19:21 UTC
Changing the component since it's not a tray issue.
Comment 9 Vincent Untz 2006-07-30 17:12:04 UTC
2006-07-30  Vincent Untz  <vuntz@gnome.org>

	* libegg/sidebar/eggsidebar.c: don't keep the group in memory, but
	only the last button
	(egg_sidebar_append): updated for this
	(egg_sidebar_remove): ditto
	Fix bug #90483
	* libegg/sidebar/eggsidebarbutton.c: (egg_sidebar_button_class_init):
	don't mark the static property as construct only
	(egg_sidebar_button_popup_delete_cb): remove the button from the
	sidebar here. Don't know why it wasn't done before :-)