GNOME Bugzilla – Bug 474118
Evolution crashed : clicked on 'dowload message for offline' option
Last modified: 2013-09-14 16:50:11 UTC
Evolution 2.11.92 with exchange back end Menu bar > File > Download message for offline Two folder have 'copy contents for offline' option enabled,so i selected option 'download message for offline' and evolution crashed.Always reproducible at my end. Gdb traces of evolution process (evolution:4831): camel-WARNING **: Object 0x80c70c8 (class 'CamelExchangeStore') doesn't have 'CamelDiscoStore' in its hierarchy Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1305715824 (LWP 4873)] camel_object_cast (o=0x0, ctype=0x8174bf8) at camel-object.c:1091 1091 g_return_val_if_fail(check_magic(o, ctype, CAMEL_OBJECT_MAGIC), NULL); (gdb) thread apply all bt
+ Trace 160793
Thread 1 (Thread -1233987056 (LWP 4831))
Always reproducible with Evolution + Group wise back end also.
There is a similar bug on https://bugs.launchpad.net/bugs/145458
Hey, I started the similar bug on launchpad, but it seems more logical to have it here so I'll subscribe to this one. I'm using Evolution 2.12, and I'm not at my laptop right now, but for any details you might need, you can check out the launchpad page posted by Sebastien.
I too have the same problem with v2.12 on Ubuntu 7.10 using the an Exchange Back-End.
i experience same problem with evolution-exchange 2.12, when using the offline mode it crashes, complaining about the store. ############################################################################## Distribution: Gentoo Base System release 1.12.9 Gnome Release: 2.20.1 2007-10-22 (Gentoo) BugBuddy Version: 2.20.1 System: Linux 2.6.22-gentoo-r8 #2 SMP Mon Oct 1 23:02:34 EEST 2007 i686 X Vendor: The X.Org Foundation X Vendor Release: 10400000 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome Memory status: size: 124334080 vsize: 124334080 resident: 26292224 share: 19103744 rss: 26292224 rss_rlim: 4294967295 CPU usage: start_time: 1193139283 rtime: 140 utime: 132 stime: 8 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution' Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1231767872 (LWP 25426)] [New Thread -1317409904 (LWP 25443)] [New Thread -1308623984 (LWP 25440)] [New Thread -1300231280 (LWP 25437)] [New Thread -1291699312 (LWP 25436)] [New Thread -1283306608 (LWP 25435)] [New Thread -1274913904 (LWP 25434)] [New Thread -1266521200 (LWP 25432)] 0xffffe410 in __kernel_vsyscall ()
+ Trace 172198
Thread 6 (Thread -1283306608 (LWP 25435))
*** Bug 465448 has been marked as a duplicate of this bug. ***
I could only reproduce this after I enabled my Exchange account. That may be a useful clue. I'm using Evolution 2.21.1. Looks like something is passing NULL to mail_store_prepare_offline(). The logic assumes non-NULL. A g_return_val_if_fail() would have been handy here. I'll investigate this further tomorrow.
Class Hierarchy: CamelExchangeStore CamelGroupwiseStore | | +-- CamelOfflineStore --+ CamelDiscoStore | | +----------- CamelStore -----------+ prepare_offline_do() expects the CamelStore object to be a CamelDiscoStore, but CamelExchangeStore and CamelGroupwiseStore are not. The type-conversion macro CAMEL_DISCO_STORE() thus returns NULL for instances of these two classes, and camel_disco_store_prepare_for_offline() does not check the arguments for NULL. Hence the crash. Reassigning this to evolution-data-server and confirming bug.
Created attachment 98357 [details] [review] Patch for bug 474118 in evolution The crash happened due to assumption of the store being of type DiscoStore. Thanks to mbarnes for explaining it in detail. attaching the changes to be done in evolution
Created attachment 98358 [details] [review] Patch for bug 474118 in evolution-data-server Changes in eds for the same
Looks okay to me. I wasn't aware that CamelDiscoStore was the older, deprecated version of CamelOfflineStore until I read [1]. Marking both patches as Reviewed but I'd like one of the more experienced Camel hackers to weigh in too. [1] http://www.go-evolution.org/Camel.Offline
Looks fine to me. You can commit only to trunk. It adds a new API.
Patch in e-d-s committed to SVN trunk as r8335 (http://svn.gnome.org/viewvc/evolution-data-server?view=revision&revision=8335) Patch in evolution fails to apply. The function 'prepare_offline_do' does not exist anymore (might be due to the new MailMsg type .. see the patch at bug #362638 comment #33)
Hmm right. Since this patch was made before Matt's code drop on mt-related changes.
Created attachment 102301 [details] [review] Patch for bug 474118 in evolution Updated the patch.
Should be fine.
Patch in evolution committed to SVN trunk as r34778 (http://svn.gnome.org/viewvc/evolution?view=revision&revision=34778)
*** Bug 501607 has been marked as a duplicate of this bug. ***