GNOME Bugzilla – Bug 368877
Crash when autocompleting email address from Exchange server
Last modified: 2007-08-17 09:21:26 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 ()
+ Trace 81442
Thread 1 (Thread -1232259392 (LWP 5750))
------- Bug created by bug-buddy at 2006-11-01 14:46 -------
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.
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
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.
+ Trace 116349
Thread NaN (LWP 18621)
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); }
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.
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...
Created attachment 84585 [details] [review] Use g_warning() instead of printf()
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.
(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
Confirm with 2.8.2 on OpenSUSE 10.2. This is a long standing problem.
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.
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 ()
+ Trace 141824
Thread 3 (Thread -1211044976 (LWP 4166))
----------- .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 --------------------------------------------------
Still not confirmed?
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
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?
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.
I just fixed this to head and closed a dup of this.