After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 474118 - Evolution crashed : clicked on 'dowload message for offline' option
Evolution crashed : clicked on 'dowload message for offline' option
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
2.22.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
: 465448 501607 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-09-06 04:45 UTC by Akhil Laddha
Modified: 2013-09-14 16:50 UTC
See Also:
GNOME target: ---
GNOME version: 2.19/2.20


Attachments
Patch for bug 474118 in evolution (1.17 KB, patch)
2007-11-02 06:01 UTC, Bharath Acharya
accepted-commit_now Details | Review
Patch for bug 474118 in evolution-data-server (2.39 KB, patch)
2007-11-02 06:02 UTC, Bharath Acharya
committed Details | Review
Patch for bug 474118 in evolution (1.09 KB, patch)
2008-01-07 06:13 UTC, Bharath Acharya
committed Details | Review

Description Akhil Laddha 2007-09-06 04:45:59 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

Thread 1 (Thread -1233987056 (LWP 4831))

  • #0 _int_malloc
    from /lib/libc.so.6
  • #1 malloc
    from /lib/libc.so.6
  • #2 IA__g_malloc
    at gmem.c line 131
  • #3 IA__g_strdup
    at gstrfuncs.c line 91
  • #4 IA__gtk_widget_path
    at gtkwidget.c line 8659
  • #5 IA__gtk_rc_get_style
    at gtkrc.c line 1958
  • #6 gtk_widget_reset_rc_style
    at gtkwidget.c line 5627
  • #7 IA__gtk_widget_realize
    at gtkwidget.c line 3254
  • #8 IA__gtk_widget_map
    at gtkwidget.c line 3130
  • #9 gtk_container_map_child
    at gtkcontainer.c line 2581
  • #10 gtk_bin_forall
    at gtkbin.c line 133
  • #11 IA__gtk_container_forall
    at gtkcontainer.c line 1453
  • #12 gtk_container_map
    at gtkcontainer.c line 2589
  • #13 gtk_event_box_map
    at gtkeventbox.c line 467
  • #14 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #15 g_type_class_meta_marshal
    at gclosure.c line 567
  • #16 IA__g_closure_invoke
    at gclosure.c line 490
  • #17 signal_emit_unlocked_R
    at gsignal.c line 2370
  • #18 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #19 IA__g_signal_emit
    at gsignal.c line 2243
  • #20 IA__gtk_widget_map
    at gtkwidget.c line 3132
  • #21 e_task_bar_prepend_task
    at e-task-bar.c line 184
  • #22 e_activity_handler_operation_started
    at e-activity-handler.c line 340
  • #23 do_op_status
    at mail-mt.c line 997
  • #24 mail_msgport_received
    at mail-mt.c line 500
  • #25 g_io_unix_dispatch
    at giounix.c line 162
  • #26 IA__g_main_context_dispatch
    at gmain.c line 2061
  • #27 g_main_context_iterate
    at gmain.c line 2694
  • #28 IA__g_main_loop_run
    at gmain.c line 2898
  • #29 bonobo_main
    at bonobo-main.c line 311
  • #30 main
    at main.c line 602

Comment 1 Akhil Laddha 2007-09-07 12:05:04 UTC
Always reproducible with Evolution + Group wise back end also.
Comment 2 Sebastien Bacher 2007-09-27 08:46:55 UTC
There is a similar bug on https://bugs.launchpad.net/bugs/145458
Comment 3 Patrick Valencia 2007-09-27 13:45:33 UTC
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.
Comment 4 Robert Updegraff 2007-10-23 01:58:30 UTC
I too have the same problem with v2.12 on Ubuntu 7.10 using the an Exchange Back-End.
Comment 5 Toomas Vahtra 2007-10-23 12:06:27 UTC
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 ()

Thread 6 (Thread -1283306608 (LWP 25435))

  • #0 __kernel_vsyscall
  • #1 __lll_mutex_lock_wait
    from /lib/libpthread.so.0
  • #2 _L_mutex_lock_50
    from /lib/libpthread.so.0
  • #3 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #4 <signal handler called>
  • #5 camel_object_cast
    at camel-object.c line 1091
  • #6 camel_disco_store_prepare_for_offline
    at camel-disco-store.c line 415
  • #7 prepare_offline_do
    at mail-ops.c line 2371
  • #8 mail_msg_received
    at mail-mt.c line 582
  • #9 thread_dispatch
    at e-msgport.c line 1005
  • #10 start_thread
    from /lib/libpthread.so.0
  • #11 clone
    from /lib/libc.so.6



Comment 6 Mart Raudsepp 2007-10-23 12:18:35 UTC
*** Bug 465448 has been marked as a duplicate of this bug. ***
Comment 7 Matthew Barnes 2007-10-30 21:04:11 UTC
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.
Comment 8 Matthew Barnes 2007-10-30 21:21:10 UTC
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.
Comment 9 Bharath Acharya 2007-11-02 06:01:18 UTC
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
Comment 10 Bharath Acharya 2007-11-02 06:02:34 UTC
Created attachment 98358 [details] [review]
Patch for bug 474118 in evolution-data-server

Changes in eds for the same
Comment 11 Matthew Barnes 2007-11-02 16:09:34 UTC
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
Comment 12 Srinivasa Ragavan 2008-01-03 10:37:52 UTC
Looks fine to me. You can commit only to trunk. It adds a new API.
Comment 13 Suman Manjunath 2008-01-05 19:08:45 UTC
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)
Comment 14 Srinivasa Ragavan 2008-01-07 05:49:36 UTC
Hmm right. Since this patch was made before Matt's code drop on mt-related changes.
Comment 15 Bharath Acharya 2008-01-07 06:13:02 UTC
Created attachment 102301 [details] [review]
Patch for bug 474118 in evolution

Updated the patch.
Comment 16 Srinivasa Ragavan 2008-01-07 06:25:53 UTC
Should be fine.
Comment 17 Suman Manjunath 2008-01-08 03:37:25 UTC
Patch in evolution committed to SVN trunk as r34778
(http://svn.gnome.org/viewvc/evolution?view=revision&revision=34778)
Comment 18 Srinivasa Ragavan 2008-01-11 17:20:07 UTC
*** Bug 501607 has been marked as a duplicate of this bug. ***