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 368877 - Crash when autocompleting email address from Exchange server
Crash when autocompleting email address from Exchange server
Status: RESOLVED FIXED
Product: Evolution Exchange
Classification: Deprecated
Component: Connector
unspecified
Other other
: High critical
: ---
Assigned To: Connector Maintainer
Ximian Connector QA
Depends on:
Blocks:
 
 
Reported: 2006-11-01 14:46 UTC by joseph.hancock
Modified: 2007-08-17 09:21 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Simple check for op->dtor != NULL before calling it (514 bytes, patch)
2007-03-06 16:22 UTC, Iceberg
none Details | Review
Prevents invoking ldap_op_finished() on the same argument twice (758 bytes, patch)
2007-03-14 16:48 UTC, Iceberg
none Details | Review
Use g_warning() instead of printf() (761 bytes, patch)
2007-03-14 16:51 UTC, Iceberg
rejected Details | Review

Description joseph.hancock 2006-11-01 14:45:06 UTC
Distribution: Ubuntu 6.06 (dapper)
Package: Evolution
Severity: major
Version: GNOME2.14.3 unspecified
Gnome-Distributor: Ubuntu
Synopsis: Crash when autocompleting email address from Exchange server
Bugzilla-Product: Evolution
Bugzilla-Component: Mailer
Bugzilla-Version: unspecified
BugBuddy-GnomeVersion: 2.0 (2.14.1)
Description:
Description of the crash:
Typing in part of an email address is usually sufficient for the
autocomplete to finish the address.  I had typed 7 or 8 characters of an
email address when evolution-exchange crashed.

Steps to reproduce the crash:
1. Open a previously sent e-mail.
2. Click forward
3. While adding first email address to forward, crash was generated.

Expected Results:
e-mail address should be completed, or a drop-down menu of matching
addresses should be displayed.

How often does this happen?
2-3 times a week.

Additional Information:



Debugging Information:

Backtrace was generated from '/usr/libexec/evolution-exchange'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1232259392 (LWP 5750)]
[New Thread -1260393552 (LWP 13705)]
[New Thread -1233511504 (LWP 5751)]
(no debugging symbols found)
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1232259392 (LWP 5750))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/tls/i686/cmov/libc.so.6
  • #2 libgnomeui_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 ldap_msgfree
    from /usr/lib/libldap_r.so.2
  • #5 ldap_result
    from /usr/lib/libldap_r.so.2
  • #6 e_book_backend_exchange_new
  • #7 g_main_context_is_owner
    from /usr/lib/libglib-2.0.so.0
  • #8 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #9 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #11 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #12 main
  • #0 __kernel_vsyscall




------- Bug created by bug-buddy at 2006-11-01 14:46 -------

Comment 1 Michel Briand 2007-02-13 11:14:47 UTC
I confirm this crash behaviour on Debian Sarge & Debian Etch.

This happen since many months (I use exchange since evolution 2.0.4) and no fix has been made.

But it does not crash every time : usually it hangs.

I feel there is something to do with LDAP queries because exchange seems to crash/hang mostly when retrieving mail address from the server.


Comment 2 Terry Hunt 2007-02-13 19:15:32 UTC
I hope it is appropriate to comment here, if not, my apologies. I have the exact issue with with Fedora Core 5-6.  I had uninstalled Bug-buddy because it usually hangs my system for several minutes before it tells me evolution isn't known to bug-buddy but I will turn it back on if it helps mitigate this issue.

Terry
Comment 3 Iceberg 2007-03-06 16:20:21 UTC
I was able to track down the source of this crash in Evolution 2.8.3.
Here is my backtrace generated by gdb, while some debug symbols was available:

Program received signal SIGSEGV, Segmentation fault.

Thread NaN (LWP 18621)

  • #0 ??
  • #1 ldap_op_finished
    at e-book-backend-gal.c line 337
  • #2 e_book_backend_stop_book_view
    at e-book-backend.c line 324
  • #3 impl_GNOME_Evolution_Addressbook_BookView_stop
    at e-data-book-view.c line 494
  • #4 _ORBIT_skel_small_GNOME_Evolution_Addressbook_BookView_stop
    at Evolution-DataServer-Addressbook-common.c line 40
  • #5 IOP_start_profiles
    from /usr/lib/libORBit-2.so.0
  • #6 ORBit_OAObject_invoke
    from /usr/lib/libORBit-2.so.0
  • #7 ORBit_small_invoke_adaptor
    from /usr/lib/libORBit-2.so.0
  • #8 ORBit_recv_buffer_return_sys_exception
    from /usr/lib/libORBit-2.so.0
  • #9 ORBit_recv_buffer_return_sys_exception
    from /usr/lib/libORBit-2.so.0
  • #10 giop_thread_queue_process
    from /usr/lib/libORBit-2.so.0
  • #11 giop_init
    from /usr/lib/libORBit-2.so.0
  • #12 g_thread_pool_push
    from /usr/lib/libglib-2.0.so.0
  • #13 g_thread_create_full
    from /usr/lib/libglib-2.0.so.0
  • #14 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #15 clone
    from /lib/tls/i686/cmov/libc.so.6


It seems then, that the following function causes SIGSEGV:

static void
ldap_op_finished (LDAPOp *op)
{
	EBookBackend *backend = op->backend;
	EBookBackendGAL *bl = E_BOOK_BACKEND_GAL (backend);

	g_static_rec_mutex_lock (&bl->priv->op_hash_mutex);
	g_hash_table_remove (bl->priv->id_to_op, &op->id);

	/* should handle errors here */
	g_mutex_lock (bl->priv->ldap_lock);
	if (bl->priv->ldap)
		ldap_abandon (bl->priv->ldap, op->id);
	g_mutex_unlock (bl->priv->ldap_lock);

	op->dtor (op); //// <== HERE (op->dtor sometimes equals NULL)

	bl->priv->active_ops--;

	if (bl->priv->active_ops == 0) {
		if (bl->priv->poll_timeout != -1)
			g_source_remove (bl->priv->poll_timeout);
		bl->priv->poll_timeout = -1;
	}
	g_static_rec_mutex_unlock (&bl->priv->op_hash_mutex);
}
Comment 4 Iceberg 2007-03-06 16:22:05 UTC
Created attachment 84082 [details] [review]
Simple check for op->dtor != NULL before calling it

Please see, if this simple patch can resolve this issue, or having op->dtor == NULL is some more serious problem that has to be dealt elswhere.
Comment 5 Iceberg 2007-03-14 16:48:26 UTC
Created attachment 84584 [details] [review]
Prevents invoking ldap_op_finished() on the same argument twice

After further investigation I found out, that there is a race condition causing under some circumstances that the ldap_op_finished() function is called with the same argument at the same time, by two different threads. Locking mechanisms in e-book-backend-gal.c do not forbid this, sadly.
I think that this patch is addressing this issue more appropriately.
Could you all affected-and-annoyed-by-this-bug please check if this patch works correctly? It seems to be working for me...
Comment 6 Iceberg 2007-03-14 16:51:53 UTC
Created attachment 84585 [details] [review]
Use g_warning() instead of printf()
Comment 7 Terry Hunt 2007-03-16 19:14:22 UTC
It is still happening to me.  I forward an email and as I typed the second name in the cc section it autocompleted and crashed.

$ rpm -qa|grep evolution
mail-notification-evolution-plugin-4.0-1.fc6
evolution-2.8.3-1.fc6
evolution-data-server-1.8.3-3.fc6
evolution-connector-2.8.3-1.fc6
evolution-webcal-2.7.1-6
evolution-sharp-0.11.1-10.fc6
beagle-evolution-0.2.13-1.fc6

please let me know how I can help.  I am more than happy to help track down the issue.
Comment 8 Iceberg 2007-03-21 08:32:45 UTC
(In reply to comment #7)
> It is still happening to me.  I forward an email and as I typed the second name
> in the cc section it autocompleted and crashed.
> 
> $ rpm -qa|grep evolution
> mail-notification-evolution-plugin-4.0-1.fc6
> evolution-2.8.3-1.fc6
> evolution-data-server-1.8.3-3.fc6
> evolution-connector-2.8.3-1.fc6
> evolution-webcal-2.7.1-6
> evolution-sharp-0.11.1-10.fc6
> beagle-evolution-0.2.13-1.fc6
> 
> please let me know how I can help.  I am more than happy to help track down the
> issue.

If you are able to trigger this bug, please do following steps:
- download evolution-exchange 2.8.3 sources
- patch it with the fix that I proposed: http://bugzilla.gnome.org/attachment.cgi?id=84585
- compile it and run the unstripped version of evolution-exchange-storage with gdb
- start Evolution and try the autocompletion feature
- if evolution-exchange-storage receives SIGSEGV, send me the result of backtrace gdb command
Comment 9 Jim 2007-04-25 15:14:31 UTC
Confirm with 2.8.2 on OpenSUSE 10.2.  This is a long standing problem.
Comment 10 Hugh Caley 2007-05-23 23:36:07 UTC
Also happens on Evolution 2.8.3, Fedora Core 6.

evolution-2.8.3-2.fc6
evolution-data-server-1.8.3-6.fc6
evolution-data-server-devel-1.8.3-6.fc6
evolution-sharp-0.11.1-10.fc6
beagle-evolution-0.2.13-1.fc6
evolution-webcal-2.7.1-6
evolution-connector-2.8.3-1.fc6

On the other hand, it doesn't crash when connecting to my ISP's IMAP server, like Outlook does, so it still seems like a step up ;)

Usually it hangs.  I kill the app from the GUI, but then I usually have to kill evolution-data-server as well to get it going again.
Comment 11 Aldo Feshti 2007-06-18 08:32:53 UTC
Problem still happen with Fedora 7 and:

evolution-2.10.2-2.fc7
evolution-webcal-2.10.0-1.fc7
evolution-data-server-1.10.2-3.fc7
evolution-brutus-1.1.26.2-2.fc7
evolution-connector-2.10.2-2.fc7

Did the patch (http://bugzilla.gnome.org/attachment.cgi?id=84585) for someone solve the problem?

_____________________________

System: Linux 2.6.21-1.3228.fc7 #1 SMP Tue Jun 12 15:37:31 EDT 2007 i686
X Vendor: The X.Org Foundation
X Vendor Release: 10300000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Clearlooks
Icon Theme: Fedora

Memory status: size: 68829184 vsize: 68829184 resident: 10809344 share: 7311360 rss: 10809344 rss_rlim: 4294967295
CPU usage: start_time: 1182154218 rtime: 32 utime: 26 stime: 6 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/libexec/evolution-exchange-storage'

(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1208678688 (LWP 4029)]
[New Thread -1221538928 (LWP 4170)]
[New Thread -1211044976 (LWP 4166)]
[New Thread -1210778736 (LWP 4031)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0x00d80402 in __kernel_vsyscall ()

Thread 3 (Thread -1211044976 (LWP 4166))

  • #0 __kernel_vsyscall
  • #1 waitpid
    from /lib/libpthread.so.0
  • #2 ??
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 ??
  • #5 ??
  • #6 e_book_backend_stop_book_view
    from /usr/lib/libedata-book-1.2.so.2
  • #7 ??
    from /usr/lib/libedata-book-1.2.so.2
  • #8 _ORBIT_skel_small_GNOME_Evolution_Addressbook_BookView_stop
    from /usr/lib/libedata-book-1.2.so.2
  • #9 POA_GNOME_Evolution_Component__fini
    from /usr/lib/libORBit-2.so.0
  • #10 ORBit_OAObject_invoke
    from /usr/lib/libORBit-2.so.0
  • #11 ORBit_small_invoke_adaptor
    from /usr/lib/libORBit-2.so.0
  • #12 POA_GNOME_Evolution_Component__fini
    from /usr/lib/libORBit-2.so.0
  • #13 POA_GNOME_Evolution_Component__fini
    from /usr/lib/libORBit-2.so.0
  • #14 giop_thread_queue_process
    from /usr/lib/libORBit-2.so.0
  • #15 POA_GNOME_Evolution_Component__fini
    from /usr/lib/libORBit-2.so.0
  • #16 POA_GNOME_Evolution_Component__fini
    from /lib/libglib-2.0.so.0
  • #17 POA_GNOME_Evolution_Component__fini
    from /lib/libglib-2.0.so.0
  • #18 start_thread
    from /lib/libpthread.so.0
  • #19 clone
    from /lib/libc.so.6


----------- .xsession-errors (332 sec old) ---------------------
** Message: drive = 0
** Message: volume = 0
in emp_apps_open_in
in emp_apps_open_in
in emp_apps_open_in
CalDAV Eplugin starting up ...
evolution-shell-Message: Killing old version of evolution-data-server...
(evolution:4007): evolution-mail-WARNING **: ignored this junk plugin: not enabled or we have already loaded one
(evolution:4007): e-utils-WARNING **: Plugin 'Spamassassin junk plugin' failed to load hook 'org.gnome.evolution.mail.junk:1.0'
** (evolution:4007): DEBUG: mailto URL command: evolution --component=mail %s
** (evolution:4007): DEBUG: mailto URL program: evolution
(evolution:4007): e-data-server-DEBUG: Loading categories from "/home/afeshti/.evolution/categories.xml"
(evolution:4007): e-data-server-DEBUG: Loaded 22 categories
--------------------------------------------------



Comment 12 Hugh Caley 2007-06-29 01:26:54 UTC
Still not confirmed?
Comment 13 Nik Lam 2007-07-10 23:41:44 UTC
I can confirm that this also happens every now and then for me too. Similar configuration as comment #11 above by Aldo Feshti.

==From Crash Report==
System: Linux 2.6.20-2925.11.fc7xen #1 SMP Mon Jun 11 16:18:59 EDT 2007 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10300000
Selinux: Enforcing
Accessibility: Disabled
GTK+ Theme: Clearlooks
Icon Theme: Fedora

==Evolution Packages Installed====
$ rpm -qa | grep evolution
evolution-webcal-2.10.0-1.fc7
evolution-data-server-1.10.2-3.fc7
evolution-data-server-devel-1.10.2-3.fc7
evolution-connector-2.10.2-2.fc7
evolution-data-server-1.10.2-3.fc7
evolution-2.10.2-3.fc7
evolution-2.10.2-3.fc7
evolution-data-server-devel-1.10.2-3.fc7
Comment 14 Hugh Caley 2007-07-11 00:39:21 UTC
There is actually a similar problem with Thunderbird and AD accessed through LDAP:

https://bugzilla.mozilla.org/show_bug.cgi?id=373167

Could both projects be running up against problems with AD's LDAP implementation?
Comment 15 Hugh Caley 2007-08-14 19:58:11 UTC
There is really no interest in fixing this?  I use Evolution with Exchange and an AD server and I have to kill and restart Evolution at least 3 times a day.
Comment 16 Srinivasa Ragavan 2007-08-17 09:21:26 UTC
I just fixed this to head and closed a dup of this.