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 618661 - Crashes e-addressbook-factory
Crashes e-addressbook-factory
Status: RESOLVED FIXED
Product: evolution-mapi
Classification: Applications
Component: Contacts (Addressbook)
0.31.x
Other Linux
: Normal critical
: ---
Assigned To: Milan Crha
evolution-mapi-maint
Depends on:
Blocks:
 
 
Reported: 2010-05-14 17:52 UTC by David Ronis
Modified: 2010-06-07 03:26 UTC
See Also:
GNOME target: ---
GNOME version: 2.29/2.30


Attachments
proposed ema patch (3.92 KB, patch)
2010-05-20 18:56 UTC, Milan Crha
committed Details | Review

Description David Ronis 2010-05-14 17:52:42 UTC
I think this one is mapi related.   I was trying to edit a contact list and I got a popup basically complaining that repositories went offline.  Similar crashes have happend when trying to autocomplete on an e-mail address in a new e-mail.  I restared with e-addressbook-factory running under gdb in a separate window.  I get the following traceback:

(gdb) start
Temporary breakpoint 1 at 0x804ad0b: file e-data-book-factory.c, line 423.
Starting program: /opt/garnome-svn-2.29.5/libexec/e-addressbook-factory 
[Thread debugging using libthread_db enabled]

Temporary breakpoint 1, main (argc=1, argv=0xbfffebd4)
    at e-data-book-factory.c:423
423		GError *error = NULL;
(gdb) continue
Continuing.
e-data-server-Message: adding type `EBookBackendFileFactory'
e-data-server-Message: adding type `EBookBackendVCFFactory'
e-data-server-Message: adding type `EBookBackendLDAPFactory'
e-data-server-Message: adding type `EBookBackendGoogleFactory'
e-data-server-Message: adding type `EBookBackendGroupwiseFactory'
e-data-server-Message: adding type `EBookBackendWebdavFactory'
e-data-server-Message: adding type `ECalBackendFileTodosFactory'
e-data-server-Message: adding type `ECalBackendFileEventsFactory'
e-data-server-Message: adding type `ECalBackendFileJournalFactory'
e-data-server-Message: adding type `ECalBackendGroupwiseTodosFactory'
e-data-server-Message: adding type `ECalBackendGroupwiseEventsFactory'
e-data-server-Message: adding type `ECalBackendGroupwiseJournalFactory'
e-data-server-Message: adding type `ECalBackendHttpTodosFactory'
e-data-server-Message: adding type `ECalBackendHttpEventsFactory'
e-data-server-Message: adding type `ECalBackendHttpMemosFactory'
e-data-server-Message: adding type `ECalBackendContactsEventsFactory'
e-data-server-Message: adding type `ECalBackendCalDAVEventsFactory'
e-data-server-Message: adding type `ECalBackendCalDAVTodosFactory'
e-data-server-Message: adding type `ECalBackendCalDAVMemosFactory'
e-data-server-Message: adding type `ECalBackendGoogleTodosFactory'
e-data-server-Message: adding type `ECalBackendGoogleEventsFactory'
e-data-server-Message: adding type `EBookBackendExchangeFactory'
e-data-server-Message: adding type `EBookBackendGalFactory'
e-data-server-Message: adding type `ECalBackendExchangeEventsFactory'
e-data-server-Message: adding type `ECalBackendExchangeTodosFactory'
e-data-server-Message: adding type `ECalBackendMAPITodosFactory'
e-data-server-Message: adding type `ECalBackendMAPIEventsFactory'
e-data-server-Message: adding type `ECalBackendMAPIJournalFactory'
e-data-server-Message: adding type `EBookBackendMAPIFactory'
e-data-server-Message: adding type `EBookBackendMAPIGALFactory'
Server is up and running...
[New Thread 0xb501fb90 (LWP 14934)]
[Thread 0xb501fb90 (LWP 14934) exited]
[New Thread 0xb501fb90 (LWP 14935)]
book_view file uref 
[Thread 0xb501fb90 (LWP 14935) exited]
[New Thread 0xb481fb90 (LWP 14939)]
[New Thread 0xb401fb90 (LWP 14940)]
book_view file uref 
[Thread 0xb401fb90 (LWP 14940) exited]
[Thread 0xb481fb90 (LWP 14939) exited]
[New Thread 0xb481fb90 (LWP 14942)]
Folder is A7EED50000000005 A7EED50000000005

e_book_backend_mapi_gal_new...
Loading the summary
[New Thread 0xb36ffb90 (LWP 14945)]
[New Thread 0xb2effb90 (LWP 14946)]
[New Thread 0xb26ffb90 (LWP 14947)]
Loading the cache
[New Thread 0xb1cffb90 (LWP 14948)]
[New Thread 0xafb06b90 (LWP 14949)]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xafb06b90 (LWP 14949)]
0xb73adc66 in raise () from /lib/libc.so.6
(gdb) thread apply all bt full

Thread 10 (Thread 0xb1cffb90 (LWP 14948))

  • #0 __lll_lock_wait
    from /lib/libpthread.so.0
  • #1 _L_lock_95
    from /lib/libpthread.so.0
  • #2 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #3 e_book_backend_open
    at e-book-backend.c line 122
  • #4 operation_thread
    at e-data-book.c line 122
  • #5 g_thread_pool_thread_proxy
    at gthreadpool.c line 315
  • #6 g_thread_create_proxy
    at gthread.c line 1898
  • #7 start_thread
    from /lib/libpthread.so.0
  • #8 clone
    from /lib/libc.so.6

Thread 9 (Thread 0xb26ffb90 (LWP 14947))

  • #0 __lll_lock_wait
    from /lib/libpthread.so.0
  • #1 _L_lock_95
    from /lib/libpthread.so.0
  • #2 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #3 e_book_backend_open
    at e-book-backend.c line 122
  • #4 operation_thread
    at e-data-book.c line 122
  • #5 g_thread_pool_thread_proxy
    at gthreadpool.c line 315
  • #6 g_thread_create_proxy
    at gthread.c line 1898
  • #7 start_thread
    from /lib/libpthread.so.0
  • #8 clone
    from /lib/libc.so.6

Thread 8 (Thread 0xb2effb90 (LWP 14946))

  • #0 __lll_lock_wait
    from /lib/libpthread.so.0
  • #1 _L_lock_95
    from /lib/libpthread.so.0
  • #2 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #3 mapi_profile_load
    at exchange-mapi-connection.c line 3373
  • #4 exchange_mapi_connection_new
    at exchange-mapi-connection.c line 268
  • #5 e_book_backend_mapi_authenticate_user
    at e-book-backend-mapi.c line 1530
  • #6 e_book_backend_authenticate_user
  • #7 operation_thread
    at e-data-book.c line 125
  • #8 g_thread_pool_thread_proxy
    at gthreadpool.c line 315
  • #9 g_thread_create_proxy
    at gthread.c line 1898
  • #10 start_thread
    from /lib/libpthread.so.0
  • #11 clone
    from /lib/libc.so.6

Thread 6 (Thread 0xb481fb90 (LWP 14942))

  • #0 xmlSAX2Characters__internal_alias
    at SAX2.c line 2421
  • #1 xmlParseReference__internal_alias
    at parser.c line 6746
  • #2 xmlParseContent__internal_alias
    at parser.c line 9380
  • #3 xmlParseElement__internal_alias
    at parser.c line 9542
  • #4 xmlParseContent__internal_alias
    at parser.c line 9371
  • #5 xmlParseElement__internal_alias
    at parser.c line 9542
  • #6 xmlParseDocument__internal_alias
    at parser.c line 10204
  • #7 xmlSAXParseMemoryWithData__internal_alias
    at parser.c line 13740
  • #8 xmlSAXParseMemory__internal_alias
    at parser.c line 13772
  • #9 xmlParseMemory__internal_alias
    at parser.c line 13786
  • #10 e_xml_parse_file
    at e-xml-utils.c line 51
  • #11 e_xmlhash_new
    at e-xml-hash-utils.c line 196
  • #12 e_file_cache_set_property
    at e-file-cache.c line 77
  • #13 object_set_property
    at gobject.c line 973
  • #14 IA__g_object_set_valist
    at gobject.c line 1488
  • #15 IA__g_object_set
    at gobject.c line 1594
  • #16 e_book_backend_cache_set_property
  • #17 object_set_property
    at gobject.c line 973
  • #18 g_object_constructor
    at gobject.c line 1410
  • #19 e_book_backend_cache_constructor
    at e-book-backend-cache.c line 148
  • #20 IA__g_object_newv
    at gobject.c line 1261
  • #21 IA__g_object_new_valist
    at gobject.c line 1377
  • #22 IA__g_object_new
    at gobject.c line 1095
  • #23 e_book_backend_cache_new
    at e-book-backend-cache.c line 208
  • #24 e_book_backend_mapi_gal_load_source
    at e-book-backend-mapi-gal.c line 432
  • #25 e_book_backend_load_source
    at e-book-backend.c line 77
  • #26 e_book_backend_open
    at e-book-backend.c line 131
  • #27 operation_thread
    at e-data-book.c line 122
  • #28 g_thread_pool_thread_proxy
    at gthreadpool.c line 315
  • #29 g_thread_create_proxy
    at gthread.c line 1898
  • #30 start_thread
    from /lib/libpthread.so.0
  • #31 clone
    from /lib/libc.so.6
(gdb) 
(gdb) qituit
A debugging session is active.

	Inferior 1 [process 14890] will be killed.
Comment 1 Milan Crha 2010-05-17 11:47:18 UTC
The actual abort thread is pretty empty, unfortunately.

> Thread 11 (Thread 0xafb06b90 (LWP 14949)):
> #0  0xb73adc66 in raise () from /lib/libc.so.6
> #1  0xb73af571 in abort () from /lib/libc.so.6
> #2  0xb55d27ec in talloc_abort () from /usr/local/samba/lib/libtalloc.so.2
> #3  0x090dca2c in ?? ()
> #4  0x00000000 in ?? ()

What version of openchange and samba are you using? I know they updated latest openchange to use recent samba4, and it's known that it doesn't work 100% (if I understood it correctly from [1]). Try to revert your openchange revision to 1783 (svn up -r 1783) and rebuild it.

[1] http://mailman.openchange.org/pipermail/devel/2010-May/001623.html
Comment 2 David Ronis 2010-05-17 17:22:00 UTC
I currently at the 1786 openchange version.  Samba is much older (Feb 3 is the date I installed it).   I'll update Samba and see what happens.
Comment 3 David Ronis 2010-05-17 20:02:04 UTC
I updated samaba (make samba in the openchange build directory) and reverted to 1783.  I also reactivated my mapi account.  So far no crash.
Comment 4 David Ronis 2010-05-17 20:11:46 UTC
No go.  I just tried to send an e-mail to an entry on my contact lists.  I get "The evolution address book has quit unexpectedly" pop-up.
Comment 5 Milan Crha 2010-05-20 18:56:53 UTC
Created attachment 161582 [details] [review]
proposed ema patch

for evolution-mapi;

I finally got to this again. I couldn't reproduce exactly the same crash as you see, but I faced something similar. This change made it behave better for me, but because of my inability with reproducing this, I would prefer your testing first. Try it for couple times, just in case. Thanks in advance.
Comment 6 David Ronis 2010-05-21 21:39:22 UTC
I applied the patch and rebuilt evo and friends (this also involved me upgrading samba to the current git/master ("make samba-git" in the openchange build directory) and using openchange trunk version 1814).   The build went fine, other than the usual sloppiness in openchange (the installed libs still aren't sym-linked properly).   

The resulting evo seems more stable.   MAPI works and I've not been able to reproduce the crash.

The only issue I've noticed so far is an apparent hang when I was doing something with our gal; I waited a while and things went back to normal.  I suspect this is because evo was reloading our entire gal (which is huge here).   Even if this is necessary (as opposed to just downloading search results only) shouldn't it be in a separate thread?
Comment 7 David Ronis 2010-05-21 21:45:16 UTC
I spoke too quickly; shortly after posting comment 6, I crashed.  Bugbuddy poped up and I filed bug 619327.
Comment 8 Milan Crha 2010-05-24 10:01:06 UTC
(In reply to comment #7)
> I spoke too quickly; shortly after posting comment 6, I crashed.  Bugbuddy
> poped up and I filed bug 619327.

Thanks for the update. It seems to be a different crash, it doesn't involve TEvent. In this bug was crashing e-addressbook-factory, thus try whether it's still crashing.
Comment 9 Milan Crha 2010-05-31 18:21:26 UTC
I guess I can commit this? Please let me know in a week, otherwise I will commit and consider this as fixed. Thanks.
Comment 10 David Ronis 2010-06-04 15:57:57 UTC
Commit it.  There are still big problems with crashes, but they aren't this I guess.
Comment 11 Bharath Acharya 2010-06-07 03:25:29 UTC
Comment on attachment 161582 [details] [review]
proposed ema patch

Committed to master
http://git.gnome.org/browse/evolution-mapi/commit/?id=a3e7cdaebc6b5f3d86ef23803f2969ec244f29eb