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 617263 - Crash of e-addressbook-factory on second start of evolution
Crash of e-addressbook-factory on second start of evolution
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Contacts
2.30.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: Milan Crha
Evolution QA team
evolution[google]
Depends on:
Blocks:
 
 
Reported: 2010-04-30 09:33 UTC by Milan Crha
Modified: 2010-04-30 11:28 UTC
See Also:
GNOME target: ---
GNOME version: 2.29/2.30


Attachments
eds patch (3.74 KB, patch)
2010-04-30 11:25 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2010-04-30 09:33:14 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=587449

abrt 1.0.9 detected a crash.

architecture: x86_64
Attached file: backtrace
cmdline: /usr/libexec/e-addressbook-factory
component: evolution-data-server
executable: /usr/libexec/e-addressbook-factory
global_uuid: 0eaa9ec92e0975a0cb8869026776114a87c53774
kernel: 2.6.33.2-57.fc13.x86_64
package: evolution-data-server-2.30.1-1.fc13
rating: 4
reason: Process /usr/libexec/e-addressbook-factory was killed by signal 11
(SIGSEGV)
release: Fedora release 13 (Goddard)

How to reproduce
-----
1. Start evolution
2. Go to Contacts
3. Times out without getting any contact email addresses (neither local nor
online data sources)

Error message:

(evolution:3736): libebook-WARNING **: e-book.c:2245: cannot get book from
factory: Did not receive a reply. Possible causes include: the remote
application did not send a reply, the message bus security policy blocked the
reply, the reply timeout expired, or the network connection was broken.

(evolution:3736): evolution-mail-WARNING **: search_address_in_addressbooks:
Unable to create addressbook 'Aoinagi': Did not receive a reply. Possible
causes include: the remote application did not send a reply, the message bus
security policy blocked the reply, the reply timeout expired, or the network
connection was broken.

warning: core file may not match specified executable file.
[New Thread 3802]
[New Thread 2029]
[New Thread 3803]
[New Thread 2204]
Core was generated by `/usr/libexec/e-addressbook-factory'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 3802)

  • #0 IA__g_type_check_instance_cast
    at gtype.c line 3970
  • #1 e_book_backend_notify_writable
    at e-book-backend.c line 936
  • #2 e_book_backend_google_authenticate_user
    at e-book-backend-google.c line 386
  • #3 _e_book_backend_authenticate_user
    at e-book-backend-sync.c line 473
  • #4 operation_thread
    at e-data-book.c line 125
  • #5 g_thread_pool_thread_proxy
    at gthreadpool.c line 315
  • #6 g_thread_create_proxy
    at gthread.c line 1893
  • #7 start_thread
    at pthread_create.c line 301
  • #8 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

-------------------------------------------------------------------------
After some investigation:
OK, I can reproduce the error (not the crash) on my machine when:
a) run evolution in contacts
b) select the google address book
c) let it show google contacts
d) close evolution
e) run evolution again (within 10 seconds, as it's a timeout for
   autoclosing factory)
f) it'll start in contacts and with the google address book selected

The e-addressbook-factory console has new critical warnings there:
(e-addressbook-factory:16641): libebookbackendgoogle-WARNING **: Connection to
google already established.

(e-addressbook-factory:16641): GLib-GObject-WARNING **: invalid
uninstantiatable type `(null)' in cast to `EDataBook'

(e-addressbook-factory:16641): GLib-GObject-WARNING **: instance of invalid
non-instantiatable type `(null)'

(e-addressbook-factory:16641): GLib-GObject-CRITICAL **: g_signal_emit_valist:
assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
-------------------------------------------------------------------------

It seems it's related to google addresbook backend only, because I cannot reproduce it with any other I have configured (webdav, file, mapi).
Comment 1 Milan Crha 2010-04-30 11:25:36 UTC
Created attachment 159972 [details] [review]
eds patch

for evolution-data-server;

The EDataBook was freed, but not removed from the list of clients for a backend. It was so for all the backends, even for the file backend, but that one wasn't notifying anything to clients, whereas the google backend was.
Comment 2 Milan Crha 2010-04-30 11:28:37 UTC
Created commit de195b7 in eds master (2.31.1+)
Created commit 9e8f81d in eds gnome-2-30 (2.30.2+)