GNOME Bugzilla – Bug 644407
gkr_operation_block_and_unref(): assertion failed: (op->pending != pending)
Last modified: 2019-02-22 11:46:06 UTC
Created attachment 183068 [details] backtrace originally reported downstream: https://bugzilla.redhat.com/show_bug.cgi?id=660407 https://bugzilla.redhat.com/show_bug.cgi?id=665761 https://bugzilla.redhat.com/show_bug.cgi?id=683707 Problem: people seem to have issues with assertions thrown when an app is trying to access a keyring - see attached backtraces. This is 2.32 series libgnome-keyring, I haven't had troubles on 2.9 series. Also asked for more details in downstream bugreports. Code: judging from gvfskeyring.c:117, it's gnome_keyring_set_network_password_sync() call, not visible in the backtrace (optimized out). Or gnome_keyring_find_network_password_sync() respectively for the second backtrace. The gnome_keyring_is_available() call succeeds in both cases.
Created attachment 183069 [details] another backtrace
Thanks. This should fix the problem: commit 84103a1d29e66ede966874e4af4b17706605cd48 Author: Stef Walter <stefw@collabora.co.uk> Date: Thu Mar 10 17:12:23 2011 +0100 This assertion is vulnerable to corner conditions. In particular if the operation completes one pending call, unrefs it and creates another pending call, and the memory allocator decides to allocate that same memory for the next pending call, then this will assert in a bogus way.
*** Bug 647189 has been marked as a duplicate of this bug. ***