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 569329 - [groupwise] EDS crashed when checking contacts in Novell GroupWise Address Book
[groupwise] EDS crashed when checking contacts in Novell GroupWise Address Book
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Contacts
2.28.x (obsolete)
Other All
: High critical
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
evolution[groupwise]
: 597255 607435 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-01-27 13:18 UTC by Kandepu Prasad
Modified: 2010-09-01 14:49 UTC
See Also:
GNOME target: ---
GNOME version: 2.27/2.28


Attachments
proposed eds patch (1.08 KB, patch)
2009-12-08 11:37 UTC, Milan Crha
committed Details | Review

Description Kandepu Prasad 2009-01-27 13:18:20 UTC
Steps to reproduce:
EDS crashed when checking contacts in Novell GroupWise Address Book


Stack trace:
(evolution-data-server-2.26:28243): libegroupwise-CRITICAL **: e_gw_item_get_item_type: assertion `E_IS_GW_ITEM (item)' failed

(evolution-data-server-2.26:28243): libegroupwise-CRITICAL **: e_gw_item_get_item_type: assertion `E_IS_GW_ITEM (item)' failed

(evolution-data-server-2.26:28243): libegroupwise-CRITICAL **: e_gw_item_get_field_value: assertion `E_IS_GW_ITEM(item)' failed

(evolution-data-server-2.26:28243): libegroupwise-CRITICAL **: e_gw_item_get_field_value: assertion `E_IS_GW_ITEM(item)' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd6ff5950 (LWP 28452)]
e_gw_item_get_full_name (item=0x0) at e-gw-item.c:884
884	{
(gdb) t a a bt

Thread 37 (Thread 0x7fffd87f8950 (LWP 28455))

  • #0 pread64
    from /lib64/libpthread.so.0
  • #1 __os_io_eds
    at ../os/os_rw.c line 52
  • #2 __memp_pgread_eds
    at ../mp/mp_bh.c line 222
  • #3 __memp_fget_eds
    at ../mp/mp_fget.c line 528
  • #4 __db_goff_eds
    at ../db/db_overflow.c line 141
  • #5 __db_ret_eds
    at ../db/db_ret.c line 52
  • #6 __db_c_get_eds
    at ../db/db_cam.c line 859
  • #7 e_book_backend_db_cache_get_contacts
    at e-book-backend-db-cache.c line 308
  • #8 book_view_thread
    at e-book-backend-groupwise.c line 2356
  • #9 g_thread_create_proxy
    at gthread.c line 635
  • #10 start_thread
    at pthread_create.c line 297
  • #11 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #12 ??

Thread 36 (Thread 0x7fffd67f4950 (LWP 28454))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 130
  • #1 _L_lock_102
    from /lib64/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 86
  • #3 delta_thread
    at e-cal-backend-groupwise.c line 358
  • #4 g_thread_create_proxy
    at gthread.c line 635
  • #5 start_thread
    at pthread_create.c line 297
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #7 ??

Thread 35 (Thread 0x7fffd6ff5950 (LWP 28452))

  • #0 e_gw_item_get_full_name
    at e-gw-item.c line 884
  • #1 populate_full_name
    at e-book-backend-groupwise.c line 663
  • #2 fill_contact_from_gw_item
    at e-book-backend-groupwise.c line 1238
  • #3 update_address_book_deltas
    at e-book-backend-groupwise.c line 3122
  • #4 g_thread_create_proxy
    at gthread.c line 635
  • #5 start_thread
    at pthread_create.c line 297
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #7 ??

Thread 34 (Thread 0x7fffd77f6950 (LWP 28451))

  • #0 fsync
    from /lib64/libpthread.so.0
  • #1 e_xml_save_file
    at e-xml-utils.c line 103
  • #2 e_xmlhash_write
    at e-xml-hash-utils.c line 349
  • #3 e_file_cache_remove_object
    at e-file-cache.c line 436
  • #4 e_file_cache_replace_object
    at e-file-cache.c line 410
  • #5 delta_thread
    at e-cal-backend-groupwise.c line 470
  • #6 g_thread_create_proxy
    at gthread.c line 635
  • #7 start_thread
    at pthread_create.c line 297
  • #8 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #9 ??

Thread 33 (Thread 0x7fffd7ff7950 (LWP 28450))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 130
  • #1 _L_lock_102
    from /lib64/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 86
  • #3 delta_thread
    at e-cal-backend-groupwise.c line 358
  • #4 g_thread_create_proxy
    at gthread.c line 635
  • #5 start_thread
    at pthread_create.c line 297
  • #6 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #7 ??

Thread 9 (Thread 0x7fffe37fe950 (LWP 28322))

  • #0 pthread_join
    at pthread_join.c line 89
  • #1 g_thread_join_posix_impl
    at gthread-posix.c line 385
  • #2 IA__g_thread_join
    at gthread.c line 703
  • #3 e_book_backend_groupwise_authenticate_user
    at e-book-backend-groupwise.c line 3403
  • #4 ORBit_small_invoke_adaptor
    at orbit-small.c line 846
  • #5 ORBit_POAObject_handle_request
    at poa.c line 1357
  • #6 ORBit_POAObject_invoke_incoming_request
    at poa.c line 1427
  • #7 giop_thread_queue_process
    at giop.c line 792
  • #8 giop_request_handler_thread
    at giop.c line 502
  • #9 g_thread_pool_thread_proxy
    at gthreadpool.c line 265
  • #10 g_thread_create_proxy
    at gthread.c line 635
  • #11 start_thread
    at pthread_create.c line 297
  • #12 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #13 ??
(gdb) 



Other information:
Found this crash in trunk build
Evolution revision: 37139
EDS revision: 9971
Comment 1 Kandepu Prasad 2009-06-08 08:58:11 UTC
I got this crash again in 2.27.3 build.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xadafcb90 (LWP 15732)]
0xb6632eba in e_gw_item_get_full_name (item=0x81dee68) at e-gw-item.c:891
(gdb) t a a bt

Thread 31 (Thread 0xadafcb90 (LWP 15732))

  • #0 e_gw_item_get_full_name
    at e-gw-item.c line 891
  • #1 fill_contact_from_gw_item
    at e-book-backend-groupwise.c line 1180
  • #2 update_address_book_deltas
    at e-book-backend-groupwise.c line 3064
  • #3 g_thread_create_proxy
    at gthread.c line 635
  • #4 start_thread
    from /lib/libpthread.so.0
  • #5 clone
    from /lib/libc.so.6

Comment 2 Akhil Laddha 2009-10-05 11:53:28 UTC
*** Bug 597255 has been marked as a duplicate of this bug. ***
Comment 3 Milan Crha 2009-12-08 11:37:47 UTC
Created attachment 149325 [details] [review]
proposed eds patch

for evolution-data-server;

I do not have groupwise, thus this is just a blind shot into the darkness...
It seems that the fetching of contact-list details failed for some reason and was used previously freed EGWItem pointer in reading. This is trying to check for failure conditions. Such failed contact-lists will not have members, I guess, but I'm not sure, maybe only not all, hard to tell.

Can anyone test this, please?
Comment 4 Magnus Boman 2009-12-08 21:07:40 UTC
This patch fixes the issue for me. Thanks!!
Comment 5 Magnus Boman 2009-12-17 20:06:50 UTC
After upgrading to e-d-s 2.28.2, this issue is back:


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f2866fda910 (LWP 6869)]
e_gw_item_get_full_name (item=0x0) at e-gw-item.c:909
909	{
(gdb) thread apply all bt

Thread 10 (Thread 0x7f28657d7910 (LWP 6870))

  • #0 g_unichar_isalnum
    from /usr/lib64/libglib-2.0.so.0
  • #1 read_attribute
    at e-vcard.c line 535
  • #2 parse
    at e-vcard.c line 654
  • #3 e_vcard_construct
    at e-vcard.c line 774
  • #4 e_contact_new_from_vcard
    at e-contact.c line 1245
  • #5 e_book_backend_db_cache_get_contacts
    at e-book-backend-db-cache.c line 301
  • #6 book_view_thread
    at e-book-backend-groupwise.c line 2296
  • #7 ??
    from /usr/lib64/libglib-2.0.so.0
  • #8 start_thread
    from /lib64/libpthread.so.0
  • #9 clone
    from /lib64/libc.so.6
  • #10 ??

Thread 9 (Thread 0x7f2866fda910 (LWP 6869))

  • #0 e_gw_item_get_full_name
    at e-gw-item.c line 909
  • #1 populate_full_name
    at e-book-backend-groupwise.c line 662
  • #2 fill_contact_from_gw_item
  • #3 update_address_book_deltas
    at e-book-backend-groupwise.c line 3014
  • #4 ??
    from /usr/lib64/libglib-2.0.so.0
  • #5 start_thread
    from /lib64/libpthread.so.0
  • #6 clone
    from /lib64/libc.so.6
  • #7 ??

Thread 7 (Thread 0x7f2868b74910 (LWP 6861))

  • #0 pthread_join
    from /lib64/libpthread.so.0
  • #1 pthread_attr_setdetachstate
    from /usr/lib64/libgthread-2.0.so.0
  • #2 g_thread_join
    from /usr/lib64/libglib-2.0.so.0
  • #3 e_book_backend_groupwise_authenticate_user
    at e-book-backend-groupwise.c line 3341
  • #4 ORBit_small_invoke_adaptor
    from /usr/lib64/libORBit-2.so.0
  • #5 ??
    from /usr/lib64/libORBit-2.so.0
  • #6 ??
    from /usr/lib64/libORBit-2.so.0
  • #7 giop_thread_queue_process
    from /usr/lib64/libORBit-2.so.0
  • #8 ??
    from /usr/lib64/libORBit-2.so.0
  • #9 ??
    from /usr/lib64/libglib-2.0.so.0
  • #10 ??
    from /usr/lib64/libglib-2.0.so.0
  • #11 start_thread
    from /lib64/libpthread.so.0
  • #12 clone
    from /lib64/libc.so.6
  • #13 ??

Comment 6 Akhil Laddha 2010-03-19 03:49:13 UTC
*** Bug 607435 has been marked as a duplicate of this bug. ***
Comment 7 Akhil Laddha 2010-03-19 03:50:05 UTC
There is a patch attached in bug 607435 as well.

https://bugzilla.gnome.org/show_bug.cgi?id=607435#c7
Comment 8 Milan Crha 2010-03-26 15:28:25 UTC
(In reply to comment #5)
> After upgrading to e-d-s 2.28.2, this issue is back

Did you apply the patch too? Also, the above patch also prevents using of uninitialized memory, whereas the patch from the bug #607435 seems to check only for NULL/not-NULL values, but the uninitialized 'item' variable can be pretty anything, not only NULL. Maybe both can be used.
Comment 9 Milan Crha 2010-09-01 14:49:17 UTC
As spoken on IRC:

Created commit 2130b68 in eds master (2.31.92+)