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 606940 - plugin_lib_loadmodule() always enables the plugin
plugin_lib_loadmodule() always enables the plugin
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Shell
2.28.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2010-01-14 11:06 UTC by Philip Van Hoof
Modified: 2010-01-18 21:07 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot proving that I have not touched the checkbox yet (463.85 KB, image/jpeg)
2010-01-14 11:10 UTC, Philip Van Hoof
Details

Description Philip Van Hoof 2010-01-14 11:06:50 UTC
When you go to the plugins screen, even BEFORE you check a checkbox of a plugin that was disabled during startup, its e_plugin_lib_enable is called with enabled TRUE. Meaning that the user's plugin gets enabled even though the user did not ask to enable it. And when the user hits the checkbox then again is the  e_plugin_lib_enable being called with enabled = true again.

This is obviously wrong.

Version is 2.28.1, Debian unstable
Comment 1 Philip Van Hoof 2010-01-14 11:09:01 UTC
I have not touched the checkbox yet

[New Thread 0xae928b70 (LWP 8696)]
[New Thread 0xb1ca5b70 (LWP 8697)]

Breakpoint 1, enable_plugin () at tracker-evolution-plugin.c:2068
2068		if (manager) {
(gdb) next
2072		if (sparql_pool) {
(gdb) up
  • #1 e_plugin_lib_enable
    at tracker-evolution-plugin.c line 2095
  • #0 enable_plugin
    at tracker-evolution-plugin.c line 2072
  • #1 e_plugin_lib_enable
    at tracker-evolution-plugin.c line 2095
  • #2 ??
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #3 ??
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #4 e_plugin_get_configure_widget
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #5 org_gnome_plugin_manager_manage
    from /usr/lib/evolution/2.28/plugins/liborg-gnome-plugin-manager.so
  • #6 ??
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #7 e_plugin_invoke
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #8 ??
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #9 ??
    from /usr/lib/evolution/2.28/libeutil.so.0
  • #10 ??
    from /usr/lib/libbonoboui-2.so.0
  • #11 IA__g_closure_invoke
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #12 bonobo_closure_invoke_va_list
    from /usr/lib/libbonobo-2.so.0
  • #13 bonobo_closure_invoke
    from /usr/lib/libbonobo-2.so.0
  • #14 ??
    from /usr/lib/libbonoboui-2.so.0
  • #15 _ORBIT_skel_small_Bonobo_UIComponent_execVerb
    from /usr/lib/libbonobo-2.so.0
  • #16 ORBit_c_stub_invoke
    from /usr/lib/libORBit-2.so.0
  • #17 Bonobo_UIComponent_execVerb
    from /usr/lib/libbonobo-2.so.0
  • #18 ??
    from /usr/lib/libbonoboui-2.so.0
  • #19 IA__g_cclosure_marshal_VOID__POINTER
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gmarshal.c line 601
  • #20 g_type_class_meta_marshal
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gclosure.c line 878
  • #21 IA__g_closure_invoke
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #22 signal_emit_unlocked_R
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3285
  • #23 IA__g_signal_emit_valist
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 2980
  • #24 IA__g_signal_emit
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3037
  • #25 bonobo_ui_engine_emit_verb_on_w
    from /usr/lib/libbonoboui-2.so.0
  • #26 ??
    from /usr/lib/libbonoboui-2.so.0
  • #27 IA__g_cclosure_marshal_VOID__VOID
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gmarshal.c line 77
  • #28 IA__g_closure_invoke
  • #29 signal_emit_unlocked_R
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3247
  • #30 IA__g_signal_emit_valist
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 2980
  • #31 IA__g_signal_emit
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3037
  • #32 IA__gtk_widget_activate
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkwidget.c line 4798
  • #33 IA__gtk_menu_shell_activate_item
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmenushell.c line 1139
  • #34 gtk_menu_shell_button_release
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmenushell.c line 678
  • #35 gtk_menu_button_release
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmenu.c line 2983
  • #36 _gtk_marshal_BOOLEAN__BOXED
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmarshalers.c line 84
  • #37 g_type_class_meta_marshal
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gclosure.c line 878
  • #38 IA__g_closure_invoke
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gclosure.c line 767
  • #39 signal_emit_unlocked_R
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3285
  • #40 IA__g_signal_emit_valist
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 2990
  • #41 IA__g_signal_emit
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/gobject/gsignal.c line 3037
  • #42 gtk_widget_event_internal
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkwidget.c line 4767
  • #43 IA__gtk_propagate_event
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmain.c line 2417
  • #44 IA__gtk_main_do_event
    at /tmp/buildd/gtk+2.0-2.18.5/gtk/gtkmain.c line 1622
  • #45 gdk_event_dispatch
    at /tmp/buildd/gtk+2.0-2.18.5/gdk/x11/gdkevents-x11.c line 2372
  • #46 g_main_dispatch
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/glib/gmain.c line 1960
  • #47 IA__g_main_context_dispatch
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/glib/gmain.c line 2513
  • #48 g_main_context_iterate
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/glib/gmain.c line 2591
  • #49 IA__g_main_loop_run
    at /build/buildd-glib2.0_2.22.3-1-i386-Y6yR35/glib2.0-2.22.3/glib/gmain.c line 2799
  • #50 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #51 ??
  • #52 __libc_start_main
    at libc-start.c line 222
  • #53 ??

Comment 2 Philip Van Hoof 2010-01-14 11:10:52 UTC
Created attachment 151388 [details]
Screenshot proving that I have not touched the checkbox yet
Comment 3 Philip Van Hoof 2010-01-14 11:13:22 UTC
This is a blocker for the Tracker Evolution plugin, raising severity.
Comment 4 Matthew Barnes 2010-01-18 21:07:37 UTC
This seems to fix this case, though I wouldn't be surprised if it broke something else:
http://git.gnome.org/browse/evolution/commit/?id=4165d1ef0538971d39decb9926b617c9a351b6fc

Reopen if you notice any unpleasant side-effects.