Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1363668 - Intermittent error: Account doesn't support prompt for credentials
Summary: Intermittent error: Account doesn't support prompt for credentials
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-online-accounts
Version: 24
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Debarshi Ray
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-08-03 10:31 UTC by Christopher Brown
Modified: 2017-02-15 17:30 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-02-15 17:30:18 UTC


Attachments (Terms of Use)

Description Christopher Brown 2016-08-03 10:31:44 UTC
Description of problem:


Since upgrading to Fedora 24, I am encountering this intermittent error when sending/receiving. It is a particular problem because sometimes mails do not send but sit in outbox until the next time Evolution is closed/re-opened. This is with an Exchange 2007 account using evolution-ews

Version-Release number of selected component (if applicable):

evolution-data-server-3.20.4-1.fc24.x86_64
evolution-ews-3.20.4-1.fc24.x86_64
evolution-3.20.4-1.fc24.x86_64

How reproducible:

Fairly easily.

Steps to Reproduce:
1. Configure an account Gnome online accounts
2. Open Evolution, compose email and send
3. Error sometimes comes saying "Account foo doesn't support prompt for credentials"

Actual results:

Error intermittently

Expected results:

Sends

Additional info:

This account is created through GOA.

Comment 1 Milan Crha 2016-08-03 10:44:43 UTC
Thanks for a bug report. As the account is created in GOA, the goa-daemon and gnome-keyring are related. The error means that the request for credentials failed for some reason and a usual way would be to ask for them, but as the account is configured in GOA, and the GOA is responsible for credentials, then it cannot bee asked in usual way and the error is thrown.

Could you run evolution from a terminal and see whether there's printed anything when you'll try to send and it'll fail this way, please? Checking availability and liveness (by its process ID) of the goa-daemon process might also help (for example by `ps ax | grep goa-daemon` executed before the send and after the attempt to send the messages, checking whether the process ID changed or not; there should be only one such process too).

Comment 2 Christopher Brown 2016-08-03 15:00:02 UTC
Hi Milan,

Thanks for the fast response.

I have started running from the CLI and have grepped for those processes but the PID stays the same:

[cbrown2@flash ~]$ pgrep -a goa-daemon && pgrep -a gnome-keyring
1684 /usr/libexec/goa-daemon
1507 /usr/bin/gnome-keyring-daemon --daemonize --login

error

[cbrown2@flash ~]$ pgrep -a goa-daemon && pgrep -a gnome-keyring
1684 /usr/libexec/goa-daemon
1507 /usr/bin/gnome-keyring-daemon --daemonize --login

Unfortunately no error from CLI, just the usual stuff:


(evolution:18007): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(evolution:18007): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(evolution:18007): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(evolution:18007): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(evolution:18007): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
(evolution:18007): Gtk-WARNING **: Allocating size to GtkBox 0x55a3969a7900 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): Gtk-WARNING **: Allocating size to EAttachmentButton 0x55a396e77a40 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): Gtk-WARNING **: Allocating size to GtkBox 0x55a3969a7900 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): Gtk-WARNING **: Allocating size to EAttachmentButton 0x55a396e77a40 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): Gtk-WARNING **: Allocating size to GtkBox 0x55a3969a7900 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): Gtk-WARNING **: Allocating size to EAttachmentButton 0x55a396e77a40 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
(evolution:18007): evolution-mail-WARNING **: handle_contact_photo_request: Cannot get contact list: Wait till syncing is done
(evolution:18007): evolution-mail-WARNING **: handle_contact_photo_request: Cannot get contact list: Wait till syncing is done
(evolution:18007): evolution-mail-WARNING **: handle_contact_photo_request: Cannot get contact list: Wait till syncing is done
(evolution:18007): evolution-mail-WARNING **: handle_contact_photo_request: Cannot get contact list: Wait till syncing is done

This is more interesting though, from journalctl

Aug 03 15:50:52 flash.local evolution-addressbook-factory[1984]: (evolution-addressbook-factory-subprocess:18073): libedata-book-CRITICAL **: book_backend_get_contact_list_uids_sync: assertion 'class->get_contact_list_sync != NULL' failed
Aug 03 15:50:52 flash.local evolution-addressbook-factory[1984]: (evolution-addressbook-factory-subprocess:18073): libedata-book-CRITICAL **: book_backend_get_contact_list_uids_sync: assertion 'class->get_contact_list_sync != NULL' failed
Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: (goa-daemon:1684): GoaBackend-WARNING **: goa_ews_client_autodiscover() failed: 7 ? Could not connect: Socket I/O timed out
Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: goa-daemon-Message: /org/gnome/OnlineAccounts/Accounts/account_1470128715_0: Setting AttentionNeeded to TRUE because EnsureCredentials() failed with: Invalid password with username ?cbrown2? (goa-error-quark, 0): Code: 7 ? Unexpected response from server (goa-error-quark, 4)
Aug 03 15:53:34 flash.local wpa_supplicant[1024]: wlp1s0: WPA: Group rekeying completed with 50:6a:03:55:cd:a0 [GTK=TKIP]
Aug 03 15:54:06 flash.local firefox.desktop[14593]: (process:22904): GLib-CRITICAL **: g_path_get_basename: assertion 'file_name != NULL' failed
Aug 03 15:54:22 flash.local wpa_supplicant[1024]: wlp1s0: WPA: Group rekeying completed with 50:6a:03:55:cd:a0 [GTK=TKIP]
Aug 03 15:55:04 flash.local wpa_supplicant[1024]: wlp1s0: WPA: Group rekeying completed with 50:6a:03:55:cd:a0 [GTK=TKIP]
Aug 03 15:57:22 flash.local firefox.desktop[14593]: (process:23006): GLib-CRITICAL **: g_path_get_basename: assertion 'file_name != NULL' failed

Does this help?

Comment 3 Milan Crha 2016-08-04 09:16:09 UTC
Thanks for the update. It does help, especially that journalctl log.

From the:

> Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: (goa-daemon:1684):
> GoaBackend-WARNING **: goa_ews_client_autodiscover() failed: 7 ? Could not
> connect: Socket I/O timed out

I suppose that 

> Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: goa-daemon-Message:
> /org/gnome/OnlineAccounts/Accounts/account_1470128715_0: Setting
> AttentionNeeded to TRUE because EnsureCredentials() failed with: Invalid
> password with username ?cbrown2? (goa-error-quark, 0): Code: 7 ? Unexpected
> response from server (goa-error-quark, 4)

causes the password check failure and then the error propagated into the evolution. According to the message, if you open the Online Accounts from the Settings, then the account will be marked as AttentionNeeded, thus you'll be (probably) asked for the password again for that GOA account.

The "Socket I/O timed out" error is suspicious. Could there happen a network change in the background, causing the time out on a stale connection for the GOA? In any case, I'm moving this to GOA, for further investigation and eventually a way to address this issue somehow.

Comment 4 Christopher Brown 2016-08-05 11:13:14 UTC
Thanks Milan.

I thought there might be ab issue with having a WLAN and LAN connection so disabled the WLAN but it still occurs.

There was an update to GOA which I have installed, so currently running:

gnome-online-accounts-3.20.3-1.fc24.x86_64

I suppose I could just configure without using GOA and see what happens...

Comment 5 Debarshi Ray 2016-08-09 16:04:30 UTC
(In reply to Milan Crha from comment #3)
> Thanks for the update. It does help, especially that journalctl log.
> 
> From the:
> 
> > Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: (goa-daemon:1684):
> > GoaBackend-WARNING **: goa_ews_client_autodiscover() failed: 7 ? Could not
> > connect: Socket I/O timed out
> 
> I suppose that 
> 
> > Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: goa-daemon-Message:
> > /org/gnome/OnlineAccounts/Accounts/account_1470128715_0: Setting
> > AttentionNeeded to TRUE because EnsureCredentials() failed with: Invalid
> > password with username ?cbrown2? (goa-error-quark, 0): Code: 7 ? Unexpected
> > response from server (goa-error-quark, 4)
> 
> causes the password check failure and then the error propagated into the
> evolution. According to the message, if you open the Online Accounts from
> the Settings, then the account will be marked as AttentionNeeded, thus
> you'll be (probably) asked for the password again for that GOA account.

To know more about this log message, try running your goa-daemon like this:
$ G_MESSAGES_DEBUG=all /usr/libexec/goa-daemon --replace &

It should show the HTTP traffic between your computer and the EWS server. To trigger this particular code, you can use d-feet to look at the org.gnome.OnlineAccounts service and run the EnsureCredentials method on the D-Bus object that represents the EWS account.

Comment 6 Christopher Brown 2016-08-16 08:31:36 UTC
(In reply to Debarshi Ray from comment #5)
> (In reply to Milan Crha from comment #3)
> > Thanks for the update. It does help, especially that journalctl log.
> > 
> > From the:
> > 
> > > Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: (goa-daemon:1684):
> > > GoaBackend-WARNING **: goa_ews_client_autodiscover() failed: 7 ? Could not
> > > connect: Socket I/O timed out
> > 
> > I suppose that 
> > 
> > > Aug 03 15:51:45 flash.local org.gnome.OnlineAccounts[1537]: goa-daemon-Message:
> > > /org/gnome/OnlineAccounts/Accounts/account_1470128715_0: Setting
> > > AttentionNeeded to TRUE because EnsureCredentials() failed with: Invalid
> > > password with username ?cbrown2? (goa-error-quark, 0): Code: 7 ? Unexpected
> > > response from server (goa-error-quark, 4)
> > 
> > causes the password check failure and then the error propagated into the
> > evolution. According to the message, if you open the Online Accounts from
> > the Settings, then the account will be marked as AttentionNeeded, thus
> > you'll be (probably) asked for the password again for that GOA account.
> 
> To know more about this log message, try running your goa-daemon like this:
> $ G_MESSAGES_DEBUG=all /usr/libexec/goa-daemon --replace &
> 
> It should show the HTTP traffic between your computer and the EWS server. To
> trigger this particular code, you can use d-feet to look at the
> org.gnome.OnlineAccounts service and run the EnsureCredentials method on the
> D-Bus object that represents the EWS account.

Sorry, I missed this comment for some reason. I have manually configured this account in Evolution so no longer see this problem. I do have another computer which is using GOA still so will try and test this when I am next there.

I am not quite sure about d-feet as I have never used it before, perhaps some example commands would be good.

Comment 7 Christopher Brown 2016-08-22 08:10:44 UTC
(In reply to Debarshi Ray from comment #5)
> To
> trigger this particular code, you can use d-feet to look at the
> org.gnome.OnlineAccounts service and run the EnsureCredentials method on the
> D-Bus object that represents the EWS account.

Hi Debarshi,

I don't really have time to research how to use d-feet and to run methods on objects etc. I'm just a user really.

After a recent update GOA is now completely non-working so have switched to native Evolution accounts.

Comment 8 Debarshi Ray 2016-08-22 09:58:01 UTC
(In reply to Christopher Brown from comment #7)
> I don't really have time to research how to use d-feet and to run methods on
> objects etc. I'm just a user really.

See https://wiki.gnome.org/Projects/GnomeOnlineAccounts/Debugging

Comment 9 Christopher Brown 2017-02-15 17:30:18 UTC
Thanks for response but am unable to debug further and a mail upgrade next week means I no longer have to use Evolution.


Note You need to log in before you can comment on or make changes to this bug.