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 652530 - EClient - Notify about opening phase result first
EClient - Notify about opening phase result first
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Contacts
3.2.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
Depends on:
Blocks: 638281
 
 
Reported: 2011-06-14 08:27 UTC by Raul Gutierrez Segales
Modified: 2013-09-14 16:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
(e_client_open_sync + e_client_is_opened): always work (1.36 KB, text/x-csrc)
2011-06-14 08:27 UTC, Raul Gutierrez Segales
Details
e-client-broken: e_client_open + callback + e_client_open_finished + e_client_is_opened (1.52 KB, text/x-csrc)
2011-06-14 08:28 UTC, Raul Gutierrez Segales
Details
e_client_open + opened signal + e_client_is_opened (1.67 KB, text/plain)
2011-06-14 08:29 UTC, Raul Gutierrez Segales
Details

Description Raul Gutierrez Segales 2011-06-14 08:27:59 UTC
Created attachment 189874 [details]
(e_client_open_sync + e_client_is_opened): always work

Sometimes e_client_is_opened will return false after e_client_open_finished is called successfully. 

I am attaching 3 test cases:

- e-client-sync.c (e_client_open_sync + e_client_is_opened): always works

- e-client.c (e_client_open + listen to "opened" signal + e_client_is_opened): always works

- e-client-broken.c (e_client_open + callback + e_client_open_finish + e_client_is_opened): sometimes fails
Comment 1 Raul Gutierrez Segales 2011-06-14 08:28:52 UTC
Created attachment 189875 [details]
e-client-broken: e_client_open + callback + e_client_open_finished + e_client_is_opened

This sometimes fails.
Comment 2 Raul Gutierrez Segales 2011-06-14 08:29:31 UTC
Created attachment 189876 [details]
e_client_open + opened signal + e_client_is_opened

This is async and always works.
Comment 3 Milan Crha 2011-06-14 11:23:23 UTC
Confirming, I see this with your test application too. The issue is that the backend process, inside factory, is notifying about 'open' method call completion first, then about result of the opening phase, when the backend was found alive. In this case the "finish" callback is served before the notification about opening phase completion, thus the client doesn't know it is actually opened. Reverting the order fixes the issue.
Comment 4 Milan Crha 2011-06-14 11:23:45 UTC
Created commit b857171 in eds master (3.1.3+)