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 614308 - Daemon crashes when adding or deleting keyrings
Daemon crashes when adding or deleting keyrings
Status: RESOLVED INCOMPLETE
Product: gnome-keyring
Classification: Core
Component: general
2.29.x
Other Linux
: Normal normal
: ---
Assigned To: GNOME keyring maintainer(s)
GNOME keyring maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2010-03-30 00:58 UTC by Christopher Halse Rogers
Modified: 2010-10-27 00:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test case for keyring create/delete daemon crash. (596 bytes, text/x-csrc)
2010-03-30 00:58 UTC, Christopher Halse Rogers
Details

Description Christopher Halse Rogers 2010-03-30 00:58:46 UTC
Created attachment 157428 [details]
Test case for keyring create/delete daemon crash.

The attached test program consistently crashes the gnome-keyring daemon for me.  It does not kill the daemon at the same loop iteration, though, and if I only create one keyring & immediately delete it then it doesn't seem to crash the daemon at all.

There are probably a couple of different bugs here; I get different daemon backtraces with different runs.  I'll add a couple of representative backtraces here:

complete_destroy:

  • #0 IA__g_object_weak_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2074
  • #1 gck_object_dispose
    at gck-object.c line 411
  • #2 gck_secret_collection_dispose
    at gck-secret-collection.c line 588
  • #3 IA__g_object_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2453
  • #4 complete_destroy
    at gck-transaction.c line 82
  • #5 gck_transaction_real_complete
    at gck-transaction.c line 269
  • #6 gck_marshal_BOOLEAN__VOID
    at gck-marshal.c line 82
  • #7 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3286
  • #9 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2991
  • #10 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #0 IA__g_object_weak_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2074
  • #1 gck_object_dispose
    at gck-object.c line 411
  • #2 gck_secret_collection_dispose
    at gck-secret-collection.c line 588
  • #3 IA__g_object_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2453
  • #4 complete_destroy
    at gck-transaction.c line 82
  • #5 gck_transaction_real_complete
    at gck-transaction.c line 269
  • #6 gck_marshal_BOOLEAN__VOID
    at gck-marshal.c line 82
  • #7 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3286
  • #9 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2991
  • #10 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #11 gck_transaction_complete
    at gck-transaction.c line 419
  • #12 gck_session_C_DestroyObject
    at gck-session.c line 1099
  • #13 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #14 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #15 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #16 _gp11_call_sync
    at gp11-call.c line 400
  • #17 gp11_object_destroy_full
    at gp11-object.c line 585
  • #18 collection_method_delete
    at gkd-secret-objects.c line 773
  • #19 collection_message_handler
    at gkd-secret-objects.c line 792
  • #20 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #21 service_dispatch_message
    at gkd-secret-service.c line 927
  • #22 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #23 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #24 message_queue_dispatch
    at egg-dbus.c line 75
  • #25 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #26 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #27 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #28 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #29 main
    at gkd-main.c line 851
  • #0 IA__g_list_remove
    at /build/buildd/glib2.0-2.23.6/glib/glist.c line 463
  • #1 remove_object
    at gck-manager.c line 466
  • #2 _gck_manager_unregister_object
    at gck-manager.c line 818
  • #3 gck_object_real_expose_object
    at gck-object.c line 380
  • #4 gck_secret_collection_expose
    at gck-secret-collection.c line 520
  • #5 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #6 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3178
  • #7 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2981
  • #8 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #9 gck_object_expose
    at gck-object.c line 931
  • #10 gck_object_expose_full
    at gck-object.c line 946
  • #11 gck_secret_collection_destroy
    at gck-secret-collection.c line 926
  • #12 gck_secret_module_real_remove_object
    at gck-secret-module.c line 372
  • #13 gck_module_remove_token_object
    at gck-module.c line 879
  • #14 gck_session_C_DestroyObject
    at gck-session.c line 1097
  • #15 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #16 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #17 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #18 _gp11_call_sync
    at gp11-call.c line 400
  • #19 gp11_object_destroy_full
    at gp11-object.c line 585
  • #20 collection_method_delete
    at gkd-secret-objects.c line 773
  • #21 collection_message_handler
    at gkd-secret-objects.c line 792
  • #22 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #23 service_dispatch_message
    at gkd-secret-service.c line 927
  • #24 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #25 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #26 message_queue_dispatch
    at egg-dbus.c line 75
  • #27 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #31 main
    at gkd-main.c line 851
  • #0 weak_refs_notify
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2003
  • #1 g_data_set_internal
    at /build/buildd/glib2.0-2.23.6/glib/gdataset.c line 345
  • #2 IA__g_datalist_id_set_data_full
    at /build/buildd/glib2.0-2.23.6/glib/gdataset.c line 592
  • #3 gck_object_dispose
    at gck-object.c line 426
  • #4 gck_secret_collection_dispose
    at gck-secret-collection.c line 588
  • #5 IA__g_object_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2453
  • #6 complete_destroy
    at gck-transaction.c line 82
  • #7 gck_transaction_real_complete
    at gck-transaction.c line 269
  • #8 gck_marshal_BOOLEAN__VOID
    at gck-marshal.c line 82
  • #9 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #10 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3286
  • #11 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2991
  • #12 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #13 gck_transaction_complete
    at gck-transaction.c line 419
  • #14 gck_session_C_DestroyObject
    at gck-session.c line 1099
  • #15 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #16 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #17 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #18 _gp11_call_sync
    at gp11-call.c line 400
  • #19 gp11_object_destroy_full
    at gp11-object.c line 585
  • #20 collection_method_delete
    at gkd-secret-objects.c line 773
  • #21 collection_message_handler
    at gkd-secret-objects.c line 792
  • #22 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #23 service_dispatch_message
    at gkd-secret-service.c line 927
  • #24 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #25 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #26 message_queue_dispatch
    at egg-dbus.c line 75
  • #27 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #31 main
    at gkd-main.c line 851

Comment 1 Christopher Halse Rogers 2010-03-30 01:01:39 UTC
Ah.  Bugzilla doesn't like multiple backtraces in a bug, it seems.  Here they are as separate comments:
gck_object_dispose:

  • #0 IA__g_object_weak_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2074
  • #1 gck_object_dispose
    at gck-object.c line 411
  • #2 gck_secret_collection_dispose
    at gck-secret-collection.c line 588
  • #3 IA__g_object_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2453
  • #4 complete_destroy
    at gck-transaction.c line 82
  • #5 gck_transaction_real_complete
    at gck-transaction.c line 269
  • #6 gck_marshal_BOOLEAN__VOID
    at gck-marshal.c line 82
  • #7 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #8 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3286
  • #9 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2991
  • #10 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #11 gck_transaction_complete
    at gck-transaction.c line 419
  • #12 gck_session_C_DestroyObject
    at gck-session.c line 1099
  • #13 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #14 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #15 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #16 _gp11_call_sync
    at gp11-call.c line 400
  • #17 gp11_object_destroy_full
    at gp11-object.c line 585
  • #18 collection_method_delete
    at gkd-secret-objects.c line 773
  • #19 collection_message_handler
    at gkd-secret-objects.c line 792
  • #20 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #21 service_dispatch_message
    at gkd-secret-service.c line 927
  • #22 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #23 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #24 message_queue_dispatch
    at egg-dbus.c line 75
  • #25 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #26 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #27 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #28 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #29 main
    at gkd-main.c line 851

Comment 2 Christopher Halse Rogers 2010-03-30 01:02:12 UTC
remove_object:

  • #0 IA__g_list_remove
    at /build/buildd/glib2.0-2.23.6/glib/glist.c line 463
  • #1 remove_object
    at gck-manager.c line 466
  • #2 _gck_manager_unregister_object
    at gck-manager.c line 818
  • #3 gck_object_real_expose_object
    at gck-object.c line 380
  • #4 gck_secret_collection_expose
    at gck-secret-collection.c line 520
  • #5 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #6 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3178
  • #7 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2981
  • #8 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #9 gck_object_expose
    at gck-object.c line 931
  • #10 gck_object_expose_full
    at gck-object.c line 946
  • #11 gck_secret_collection_destroy
    at gck-secret-collection.c line 926
  • #12 gck_secret_module_real_remove_object
    at gck-secret-module.c line 372
  • #13 gck_module_remove_token_object
    at gck-module.c line 879
  • #14 gck_session_C_DestroyObject
    at gck-session.c line 1097
  • #15 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #16 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #17 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #18 _gp11_call_sync
    at gp11-call.c line 400
  • #19 gp11_object_destroy_full
    at gp11-object.c line 585
  • #20 collection_method_delete
    at gkd-secret-objects.c line 773
  • #21 collection_message_handler
    at gkd-secret-objects.c line 792
  • #22 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #23 service_dispatch_message
    at gkd-secret-service.c line 927
  • #24 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #25 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #26 message_queue_dispatch
    at egg-dbus.c line 75
  • #27 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #31 main
    at gkd-main.c line 851

Comment 3 Christopher Halse Rogers 2010-03-30 01:03:17 UTC
And another gck_object_dispose:

  • #0 weak_refs_notify
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2003
  • #1 g_data_set_internal
    at /build/buildd/glib2.0-2.23.6/glib/gdataset.c line 345
  • #2 IA__g_datalist_id_set_data_full
    at /build/buildd/glib2.0-2.23.6/glib/gdataset.c line 592
  • #3 gck_object_dispose
    at gck-object.c line 426
  • #4 gck_secret_collection_dispose
    at gck-secret-collection.c line 588
  • #5 IA__g_object_unref
    at /build/buildd/glib2.0-2.23.6/gobject/gobject.c line 2453
  • #6 complete_destroy
    at gck-transaction.c line 82
  • #7 gck_transaction_real_complete
    at gck-transaction.c line 269
  • #8 gck_marshal_BOOLEAN__VOID
    at gck-marshal.c line 82
  • #9 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.23.6/gobject/gclosure.c line 767
  • #10 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3286
  • #11 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 2991
  • #12 IA__g_signal_emit
    at /build/buildd/glib2.0-2.23.6/gobject/gsignal.c line 3038
  • #13 gck_transaction_complete
    at gck-transaction.c line 419
  • #14 gck_session_C_DestroyObject
    at gck-session.c line 1099
  • #15 gck_C_DestroyObject
    at ../../pkcs11/gck/gck-module-ep.h line 519
  • #16 plex_C_DestroyObject
    at gck-plex-layer.c line 463
  • #17 auth_C_DestroyObject
    at gkd-pkcs11-auth.c line 1009
  • #18 _gp11_call_sync
    at gp11-call.c line 400
  • #19 gp11_object_destroy_full
    at gp11-object.c line 585
  • #20 collection_method_delete
    at gkd-secret-objects.c line 773
  • #21 collection_message_handler
    at gkd-secret-objects.c line 792
  • #22 gkd_secret_objects_dispatch
    at gkd-secret-objects.c line 1003
  • #23 service_dispatch_message
    at gkd-secret-service.c line 927
  • #24 gkd_secret_service_filter_handler
    at gkd-secret-service.c line 997
  • #25 dbus_connection_dispatch
    at dbus-connection.c line 4444
  • #26 message_queue_dispatch
    at egg-dbus.c line 75
  • #27 g_main_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 1960
  • #28 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2513
  • #29 g_main_context_iterate
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2591
  • #30 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.23.6/glib/gmain.c line 2799
  • #31 main
    at gkd-main.c line 851

Comment 4 Stef Walter 2010-09-11 20:25:15 UTC
Hmmm, doesn't crash for me, using gnome-keyring git master. Do you think this was fixed by other commits?

Here's how I compiled your test program:

gcc `pkg-config --cflags --libs gnome-keyring-1` -std=c99 -o gk-crash gk-crash.c

Could you test it again with the latest gnome-keyring?
Comment 5 Felipe Besoaín Pino 2010-10-27 00:17:09 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!