GNOME Bugzilla – Bug 750724
search provider tries to show dialog without gtk_init
Last modified: 2015-10-01 21:31:40 UTC
We have a frequent crash in Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1199712 From the stack trace there, what appears to be happening is that libedataserverui decides that it needs to prompt for credentials, so it tries to show a dialog, which does not go well, since nobody has called gtk_init(). Of course, the shell search provider has no business showing a dialog in the first place.
Looks like the culprit is contacts_ensure_eds_accounts - it probably needs to take an 'allow_interaction parameter to prevent any prompts.
Created attachment 305085 [details] [review] Don't show authentication UI from the search provide
I haven't tested this because i'm not sure how to provoke it to show a dialog, but this seems like it would fix it.
Created attachment 305086 [details] [review] Don't show authentication UI from the search provide
New version actually disables prompt for the search provider.
Review of attachment 305086 [details] [review]: Certainly looks plausible, without looking too deeply. I'll put it in Fedora
Comment on attachment 305086 [details] [review] Don't show authentication UI from the search provide Commited as 738983f
I pushed this on master too.
(In reply to Alexander Larsson from comment #8) > I pushed this on master too. I'll try and make a release today or tomorrow.
Unfortunately we have 1032 reports of this crash in Fedora after applying this patch (400 in the past three days!).
(In reply to Michael Catanzaro from comment #10) > Unfortunately we have 1032 reports of this crash in Fedora after applying > this patch (400 in the past three days!). It would work, if the patch was actually applied: @@ -43,6 +44,7 @@ Provides: contacts %prep %setup -q +#%patch0 -p1 %build %configure --enable-man-pages ------------------------------------------------------------------- This can be closed, from my point of view, because I'm not able to reproduce this on sources (git master) with the patch applied, while if I disable (revert) the code then it crashes. If one would want to make this super great, then when the "allow_interaction" is FALSE, the e_credentials_prompter_new() should not be called at all. That'll make sure that even any future ESource-s will not try the credentials prompt/UI calls.
(In reply to Milan Crha from comment #11) > > If one would want to make this super great, then when the > "allow_interaction" is FALSE, the e_credentials_prompter_new() should not be > called at all. That'll make sure that even any future ESource-s will not try > the credentials prompt/UI calls. I can make that happens.
this was all done, I believe