GNOME Bugzilla – Bug 329421
Deadlock in 2.5.90 [camel_stream_close]
Last modified: 2013-09-10 14:04:09 UTC
Just upgraded to Evolution 2.5.90 (Rawhide), and Evo frequently hangs. The backtrace is as follows:
+ Trace 65808
989 pthread_mutex_unlock(&e->mutex); 990 991 if (func) 992 func(e, m, func_data); 993 } 994 995 /* the actual thread dispatcher */ 996 static void * 997 thread_dispatch(void *din) 998 { (gdb) up Initial frame selected; you cannot go up.
Changing milestone to 2.5 and adding it to 2.5 tracker bug.
Luke: How often does this happen? Any particular operation/sequence of operation to reproduce it? Also, which provider do you use, IMAP/Exchange/GW/POP?
I have one POP acct (gmail) and one IMAP acct (mail.mit.edu). This would happen nearly every time when I updated to evolution-2.5.90-1, but I have since updated to evolution-2.5.90-2.1, and I don't see the deadlock anymore. I actually think the deadlock might have been freed up before I updated the RPM, and I suspect it was more about the Evo mail db and the mail server somehow getting out of sync / getting into a weird state. I don't remember what fixed it, I tried all sorts of things. I eventually started Evo in offline mode, used it for a few days like that, then went online and I think that's when the problem was fixed.
it's not actually dependant upon the provider he uses, the problem looks to be related to rendering html mail (the backtrace suggests the problem to be in em-sync-stream.c which is used to send images to gtkhtml afaik)
That may explain why the problem stopped eventually. I tried all sorts of things like hitting delete before the message rendered. I don't recall ever thinking after trying something, "ah, that fixed it", so I can't confirm this was what did it for sure.
Lowering priority at this moment as its not observed/or not consistent
Could this somehow be related? ==2764== Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s) ==2764== at 0x5C13C7: setsockopt (in /lib/libc-2.3.91.so) ==2764== by 0x4240E67: camel_tcp_stream_setsockopt (camel-tcp-stream.c:155) ==2764== by 0xF0BC18C: connect_to_server (camel-imap-store.c:618) ==2764== by 0xF0BCA70: connect_to_server_wrapper (camel-imap-store.c:984) ==2764== by 0xF0BCF41: imap_connect_online (camel-imap-store.c:1422) ==2764== by 0x4218265: disco_connect (camel-disco-store.c:160) ==2764== by 0x4236332: camel_service_connect (camel-service.c:369) ==2764== by 0xF0B86DB: camel_imap_store_connected (camel-imap-store.c:2956) ==2764== by 0xF0B9DC1: get_folder_info_online (camel-imap-store.c:2698) ==2764== by 0x4217DE9: disco_get_folder_info (camel-disco-store.c:254) ==2764== by 0x423DB15: camel_store_get_folder_info (camel-store.c:788) ==2764== by 0x6618ACB: get_folderinfo_get (mail-ops.c:1070) ==2764== by 0x6615514: mail_msg_received (mail-mt.c:570) ==2764== by 0x43B2613: thread_dispatch (e-msgport.c:974) ==2764== by 0x7893B5: start_thread (in /lib/libpthread-2.3.91.so) ==2764== by 0x5C027D: clone (in /lib/libc-2.3.91.so) ==2764== Address 0x7194184 is on thread 2's stack ==2764== Warning: invalid file descriptor -1 in syscall close() ==2764== at 0x78EBFF: (within /lib/libpthread-2.3.91.so) ==2764== by 0x42E14B0: camel_stream_close (camel-stream.c:154) ==2764== by 0xF0BBB38: imap_disconnect_offline (camel-imap-store.c:1578) ==2764== by 0xF0BBC25: imap_disconnect_online (camel-imap-store.c:1615) ==2764== by 0x4217C4F: disco_disconnect (camel-disco-store.c:211) ==2764== by 0x42361B4: camel_service_disconnect (camel-service.c:432) ==2764== by 0xF0B89B8: camel_imap_store_readline (camel-imap-store.c:3010) ==2764== by 0xF0BC1A5: connect_to_server (camel-imap-store.c:621) ==2764== by 0xF0BCA70: connect_to_server_wrapper (camel-imap-store.c:984) ==2764== by 0xF0BCF41: imap_connect_online (camel-imap-store.c:1422) ==2764== by 0x4218265: disco_connect (camel-disco-store.c:160) ==2764== by 0x4236332: camel_service_connect (camel-service.c:369) ==2764== by 0xF0B86DB: camel_imap_store_connected (camel-imap-store.c:2956) ==2764== by 0xF0B9DC1: get_folder_info_online (camel-imap-store.c:2698) ==2764== by 0x4217DE9: disco_get_folder_info (camel-disco-store.c:254) ==2764== by 0x423DB15: camel_store_get_folder_info (camel-store.c:788) ==2764== by 0x6618ACB: get_folderinfo_get (mail-ops.c:1070) ==2764== by 0x6615514: mail_msg_received (mail-mt.c:570) ==2764== by 0x43B2613: thread_dispatch (e-msgport.c:974) ==2764== by 0x7893B5: start_thread (in /lib/libpthread-2.3.91.so) ==2764== by 0x5C027D: clone (in /lib/libc-2.3.91.so) ==2764== by 0x68341DF3: ??? ==2764== by 0xB074C777: ??? ==2764== by 0x3: ??? ==2764== by 0xF0B9DC1: get_folder_info_online (camel-imap-store.c:2698) ==2764== by 0x2: ???
nah, unrelated - valgrid is just reporting an optimisation within libc here. the original bug is about a stream used in the UI (which doesn't use setsockopt) for sending images to gtkhtml.
Bumping version to a stable release.
Can you please check again whether this issue still happens in Evolution 3.0.3 or 3.2.0 and update this report by adding a comment and changing the "Version" field? Thanks a lot.
Please feel free to reopen this bug if the problem still occurs with a newer version of Evolution.