http://bugzilla.ximian.com/show_bug.cgi?id=61551 deadlock condition where one thread has the connect_lock and tries to get the folder_lock and another thread which already has the folder_lock tries to get the connect_lock. Jeff -- Jeffrey Stedfast Evolution Hacker - Novell, Inc. fejj ximian com - www.novell.com
? 55280.patch ? 61538.patch ? 61551.patch ? ChangeLog.nonximian ? body ? body.c ? body.txt ? body2.txt ? braindamaged.patch ? camel-namespace.patch ? cf.c ? charset-map.c ? charset-map.diff ? class.sh ? cmsutil.c ? date.patch ? flags ? foo ? foo.txt ? foo2.txt ? gw-body.txt ? imap ? invalid-content-id.patch ? iso ? iso.c ? namespace.sh ? patch ? pop3-uidl.patch ? smime ? uid-cache.patch ? providers/tmp ? providers/local/camel-mozilla-folder.c ? providers/local/camel-mozilla-folder.h ? providers/local/camel-mozilla-store.c ? providers/local/camel-mozilla-store.h ? tests/data/camel-mime-tests.tar.gz Index: ChangeLog =================================================================== RCS file: /cvs/gnome/evolution/camel/ChangeLog,v retrieving revision 1.2219 diff -u -r1.2219 ChangeLog --- ChangeLog 14 Jul 2004 19:00:37 -0000 1.2219 +++ ChangeLog 14 Jul 2004 19:25:16 -0000 @@ -1,5 +1,11 @@ 2004-07-14 Jeffrey Stedfast <fejj novell com> + * providers/imap/camel-imap-folder.c (imap_transfer_online): Grab + the folder lock before grabbing the connect_lock when refreshing + the dest folder's info to avoid the deadlock in bug #61551. + +2004-07-14 Jeffrey Stedfast <fejj novell com> + Fix for bug #61538 * camel-process.c (camel_process_fork): Same. Index: providers/imap/camel-imap-folder.c =================================================================== RCS file: /cvs/gnome/evolution/camel/providers/imap/camel-imap-folder.c,v retrieving revision 1.336 diff -u -r1.336 camel-imap-folder.c --- providers/imap/camel-imap-folder.c 20 May 2004 19:16:53 -0000 1.336 +++ providers/imap/camel-imap-folder.c 14 Jul 2004 19:25:16 -0000 @@ -1481,11 +1481,13 @@ return; /* Make the destination notice its new messages */ + CAMEL_FOLDER_LOCK(dest, lock); CAMEL_SERVICE_LOCK (store, connect_lock); if (store->current_folder != dest || camel_folder_summary_count (dest->summary) == count) camel_folder_refresh_info (dest, ex); CAMEL_SERVICE_UNLOCK (store, connect_lock); + CAMEL_FOLDER_UNLOCK(dest, lock); if (delete_originals) { for (i = 0; i < uids->len; i++)
Attachment:
smime.p7s
Description: S/MIME cryptographic signature