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 677398 - Can get stuck in e_book_backend_ews_authenticate_user()
Can get stuck in e_book_backend_ews_authenticate_user()
Status: RESOLVED FIXED
Product: evolution-ews
Classification: Other
Component: Miscellaneous / EWS Core
3.4.x
Other Linux
: Normal critical
: ---
Assigned To: Evolution EWS maintainer(s)
Evolution EWS maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2012-06-04 16:08 UTC by Milan Crha
Modified: 2012-06-04 16:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ews patch (1.75 KB, patch)
2012-06-04 16:24 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2012-06-04 16:08:07 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=821228

EWS' address book can get stuck in authentication, possibly leading to a locked account on the server. The symptoms are that multiple threads in the factory process look like this:


Thread 14 (Thread 0xadbf9b40 (LWP 30306))

  • #0 __kernel_vsyscall
  • #1 pthread_cond_wait
    at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S line 172
  • #2 g_cond_wait
    at gthread-posix.c line 746
  • #3 e_flag_wait
    at e-flag.c line 130
  • #4 e_ews_connection_get_folder
    at e-ews-connection.c line 3815
  • #5 e_book_backend_ews_authenticate_user
    at e-book-backend-ews.c line 2622
  • #6 e_book_backend_authenticate_user
    at e-book-backend.c line 697
  • #7 operation_thread
    at e-data-book.c line 237
  • #8 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #9 g_thread_proxy
    at gthread.c line 801
  • #10 start_thread
    at pthread_create.c line 309
  • #11 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Comment 1 Milan Crha 2012-06-04 16:24:24 UTC
Created attachment 215561 [details] [review]
ews patch

for evolution-ews;

This is pretty interesting, as it happened between 3.4.1 and 3.4.2, and this was not caused directly by changes in ews. There was an issue with sender's photo being read from local only, and the option didn't influence behaviour in evolution. it was fixed in evo for 3.4.2. Once it is set to include also remote addressbooks, the the ews book is trying to authenticate. The problem is that when message is shown the contact's photo is looked up for, but this lookup doesn't authenticate books, thus the backends gets back ECredentials with no username nor password. This is used to indicate that password prompt failed, thus the backend can finish its opening phase, but EWS' backend didn't respond to it properly and rather tried to connect to he server again, with no username and password, thus it failed again. This way there was a very nice ping-pong on DBus, resulting in a repeated authentications against server from the addressbook factory each few seconds.

I'm committing change to master too, but there only the piece of e-ews-connection.c, the rest is totally different now.
Comment 2 Milan Crha 2012-06-04 16:26:41 UTC
Created commit c28c9c1 in ews master (3.5.3+)
Created commit 0cb2c55 in ews gnome-3-4 (3.4.3+)