[Bug 505153] New: Evolution segfaults frequently after update
http://bugzilla.novell.com/show_bug.cgi?id=505153 Summary: Evolution segfaults frequently after update Classification: openSUSE Product: openSUSE 11.1 Version: Final Platform: x86-64 OS/Version: Linux Status: NEW Severity: Major Priority: P5 - None Component: Evolution AssignedTo: bnc-team-evolution@forge.provo.novell.com ReportedBy: ptesarik@novell.com QAContact: lakhil@novell.com Found By: L3 After the latest update, evolution segfaults _very_ frequently (every 5 minutes or so), when a GroupWise account is active. nathan:~ # rpm -q evolution evolution-2.24.1.1-4.14.1 nathan:~ # rpm -q evolution-data-server evolution-data-server-2.24.1.1-5.12.1 Sample gdb transcript: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fc19cd22950 (LWP 10180)] #0 0x00007fc1c1ee3a4b in camel_message_info_ptr (mi=0xda5ab0, id=1) at camel-folder-summary.c:4556 #1 0x00007fc1a3239f41 in update_junk_list (store=0x810630, info=0xda5ab0, flag=1) at camel-groupwise-folder.c:538 #2 0x00007fc1a323d1ff in groupwise_sync (folder=0xc4b1a0, expunge=0, ex=0x7fc1a40f3a00) at camel-groupwise-folder.c:592 #3 0x00007fc1a3242abf in groupwise_get_folder_info (store=0x810630, top=0x0, flags=<value optimized out>, ex=0x7fc1a40f3a00) at camel-groupwise-store.c:1190 #4 0x00007fc1c1f06f07 in camel_store_get_folder_info (store=0x810630, top=0x0, flags=7, ex=0x7fc1a40f3a00) at camel-store.c:894 #5 0x00007fc1b06208c8 in get_folderinfo_exec (m=0x7fc1a40f39e0) at mail-ops.c:1075 #6 0x00007fc1b061da44 in mail_msg_proxy (msg=0x7fc1a40f39e0) at mail-mt.c:520 #7 0x00007fc1b4faad27 in ?? () from /usr/lib64/libglib-2.0.so.0 #8 0x00007fc1b4fa9784 in ?? () from /usr/lib64/libglib-2.0.so.0 #9 0x00007fc1bfed8070 in start_thread () from /lib64/libpthread.so.0 #10 0x00007fc1b4cc010d in clone () from /lib64/libc.so.6 #11 0x0000000000000000 in ?? () #0 0x00007fc1c1ee3a4b in camel_message_info_ptr (mi=0xda5ab0, id=1) at camel-folder-summary.c:4556 4556 return ((CamelFolderSummaryClass *)((CamelObject *)mi->summary)->klass)->info_ptr(mi, id); (gdb) p (CamelFolderSummaryClass *)((CamelObject *)mi->summary)->klass $5 = (struct _CamelFolderSummaryClass *) 0x0 (gdb) up #1 0x00007fc1a3239f41 in update_junk_list (store=0x810630, info=0xda5ab0, flag=1) at camel-groupwise-folder.c:538 538 if (!(from = g_strdup (camel_message_info_from (info)))) (gdb) #2 0x00007fc1a323d1ff in groupwise_sync (folder=0xc4b1a0, expunge=0, ex=0x7fc1a40f3a00) at camel-groupwise-folder.c:592 592 update_junk_list (folder->parent_store, info, REMOVE_JUNK_ENTRY); (gdb) #3 0x00007fc1a3242abf in groupwise_get_folder_info (store=0x810630, top=0x0, flags=<value optimized out>, ex=0x7fc1a40f3a00) at camel-groupwise-store.c:1190 1190 CAMEL_FOLDER_CLASS (CAMEL_OBJECT_GET_CLASS (groupwise_store->current_folder))->sync(groupwise_store->current_folder, FALSE, ex); (gdb) #4 0x00007fc1c1f06f07 in camel_store_get_folder_info (store=0x810630, top=0x0, flags=7, ex=0x7fc1a40f3a00) at camel-store.c:894 894 info = CS_CLASS (store)->get_folder_info (store, top, flags, ex); (gdb) #5 0x00007fc1b06208c8 in get_folderinfo_exec (m=0x7fc1a40f39e0) at mail-ops.c:1075 1075 m->info = camel_store_get_folder_info (m->store, NULL, flags, &m->base.ex); (gdb) #6 0x00007fc1b061da44 in mail_msg_proxy (msg=0x7fc1a40f39e0) at mail-mt.c:520 520 msg->info->exec (msg); -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c1
--- Comment #1 from Petr Tesařík
(gdb) p (CamelFolderSummaryClass *)((CamelObject *)mi->summary)->klass $5 = (struct _CamelFolderSummaryClass *) 0x0 ^^^^ Forgot to draw your attention here.
-- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c2
--- Comment #2 from Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c3
--- Comment #3 from Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c4
Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c5
Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c6
--- Comment #6 from Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User psankar@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c7
Sankar P
Created an attachment (id=295183) --> (http://bugzilla.novell.com/attachment.cgi?id=295183) [details] bnc-505153-groupwise-crash.patch
This patch seems to solve the issue for me.
The patch looks fine to me. I believe this is straightforward and can be committed immediately. However, I am not reviewing evolution patches these days. so Chen if you feel this is correct, we can get this committed asap. :-) -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
User pchenthill@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c8
--- Comment #8 from Chenthill palanisamy
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c9
Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User pchenthill@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c10
--- Comment #10 from Chenthill palanisamy
Hi Chenthill, I'm not sure which unreffing you mean. As you can see, groupwise_sync() is entered with folder->ref_count = 1, and it first gets decremented to zero in groupwise_store_set_current_folder(), so it clearly doesn't keep the refcount balanced.
Do you mean the caller of groupwise_store_set_current_folder() should have incremented the refcount prior to calling it? Yes set_current_folder should have incremented it once. As you can see in the function, it adds a reference count while setting the current folder.
So i suspect somewhere else in the code, the reference count is decremented when it is not needed. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c11
--- Comment #11 from Petr Tesařík
(In reply to comment #9)
Do you mean the caller of groupwise_store_set_current_folder() should have incremented the refcount prior to calling it? Yes set_current_folder should have incremented it once. As you can see in the function, it adds a reference count while setting the current folder.
So i suspect somewhere else in the code, the reference count is decremented when it is not needed.
Ah, ok. In that case that "somebody" must have done it between the increment in set_current_folder() and the decrement in groupwise_store_set_current_folder(). Now it will be easier to hunt. Thanks. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c12
--- Comment #12 from Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User pchenthill@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c13
--- Comment #13 from Chenthill palanisamy
http://bugzilla.novell.com/show_bug.cgi?id=505153
User ptesarik@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c14
--- Comment #14 from Petr Tesařík
http://bugzilla.novell.com/show_bug.cgi?id=505153
User pchenthill@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c15
--- Comment #15 from Chenthill palanisamy
Ah, ok, I misunderstood you. Hm, can't it be that the reference from groupwise_store_set_current_folder() is still there, but it happens to be the last one? Yes it looks to be the last reference which is the bug i guess.
Or do you mean that the caller of groupwise_sync() should take an extra reference on the folder it passes as argument?
while the folder argument is comes in groupwise_sync () the reference count should be >1 as groupwise_store_set_current_folder () should hold 1 and someone else should the other to have the folder alive. I will go through the code a bit more tomorrow and update the bug.. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=505153
Akhil Laddha
http://bugzilla.novell.com/show_bug.cgi?id=505153
User lakhil@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=505153#c16
Akhil Laddha
http://bugzilla.novell.com/show_bug.cgi?id=505153
http://bugzilla.novell.com/show_bug.cgi?id=505153#c17
--- Comment #17 from Stefan Behlert
https://bugzilla.novell.com/show_bug.cgi?id=505153
https://bugzilla.novell.com/show_bug.cgi?id=505153#c18
Chenthill palanisamy
https://bugzilla.novell.com/show_bug.cgi?id=505153
https://bugzilla.novell.com/show_bug.cgi?id=505153#c19
Akhil Laddha
participants (1)
-
bugzilla_noreply@novell.com