[evolution-patches] A crash for CamelDiscoStore



Hi 

Here is the crash stack     
  [1] __lwp_park(0x0, 0x0), at 0xd07c2749
  [2] mutex_lock_queue(0xcfd32400, 0x0, 0x8079f5c, 0x0), at 0xd07bb56c
  [3] slow_lock(0xcfd32400, 0x8079f5c, 0x0), at 0xd07bbe40
  [4] mutex_lock_impl(0x8079f5c, 0x0), at 0xd07bbf36
  [5] _mutex_lock(0x8079f5c), at 0xd07bc042
  [6] segv_redirect(0xb, 0x0, 0xcc65b9ac), at 0x8064029
  [7] __sighndlr(0xb, 0x0, 0xcc65b9ac, 0x8063fc3), at 0xd07c27ef
  ---- called from signal handler with signal 11 (SIGSEGV) ------
=>[8] camel_disco_diary_empty(0x0), at 0xce91fbb8
  [9] disco_connect(0x82ce678, 0x0), at 0xce921094
  [10] camel_service_connect(0x82ce678, 0x0), at 0xce9409d7
  [11] camel_imap_store_connected(0x82ce678, 0x0), at 0xcc6877b1
  [12] camel_imap_folder_fetch_data(0x96c4ac0, 0xbc5d4c8, 0xa3f1c28,
0x0, 0x0), at 0xcc67f035
  [13] write_to_stream(0x8c3ce70, 0x8a6cb08), at 0xcc68b528
  [14] camel_data_wrapper_write_to_stream(0x8c3ce70, 0x8a6cb08), at
0xcfc136ad
  [15] efh_text_plain(0x83e90e8, 0x8930c18, 0x862d850, 0xccef25b0), at
0xcce83e74
  [16] em_format_part_as(0x83e90e8, 0x8930c18, 0x862d850, 0xa99b540), at
0xcce87dae
  [17] emf_multipart_mixed(0x83e90e8, 0x8930c18, 0x89a77c8, 0xccef2748),
at 0xcce88cd0
  [18] em_format_part_as(0x83e90e8, 0x8930c18, 0x89a77c8, 0xaa9c830), at
0xcce87dae
  [19] em_format_part(0x83e90e8, 0x8930c18, 0x89a77c8), at 0xcce87e43
  [20] efh_format_message(0x83e90e8, 0x8930c18, 0x89a77c8, 0xccef2640),
at 0xcce861cc
  [21] efh_format_do(0x8c3db58), at 0xcce84c0e
  [22] mail_msg_received(0x81a5920, 0x8c3db58, 0x0), at 0xccea6087
  [23] thread_dispatch(0x81a5920), at 0xd03df700
  [24] _thr_setup(0xcfd32400), at 0xd07c22ea
  [25] _lwp_start(), at 0xd07c26f0   

We can see that parameter of function 'camel_disco_diary_empty' is null.
When camel disco diary is null, it indicates that no need to resync on
the disk files. I give a patch, pls review it.
? camel-mime-tables.c
? providers/groupwise/.deps
? providers/groupwise/.libs
? providers/groupwise/camel-groupwise-folder.lo
? providers/groupwise/camel-groupwise-journal.lo
? providers/groupwise/camel-groupwise-provider.lo
? providers/groupwise/camel-groupwise-store-summary.lo
? providers/groupwise/camel-groupwise-store.lo
? providers/groupwise/camel-groupwise-summary.lo
? providers/groupwise/camel-groupwise-transport.lo
? providers/groupwise/camel-groupwise-utils.lo
? providers/groupwise/libcamelgroupwise.la
? providers/imap/patch_printf
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/ChangeLog,v
retrieving revision 1.2486
diff -u -r1.2486 ChangeLog
--- ChangeLog	23 Oct 2005 15:44:33 -0000	1.2486
+++ ChangeLog	12 Nov 2005 06:47:23 -0000
@@ -1,3 +1,8 @@
+2005-11-12  Jeff Cai  <jeff cai sun com>
+
+	* camel-disco-store.c: (disco_connect):
+	If no diary is created, no need to do resync.
+
 2005-10-23  Parthasarathi Susarla <sparthasarathi novell com>
 	
 	** See bug #218177
Index: camel-disco-store.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/camel-disco-store.c,v
retrieving revision 1.16
diff -u -r1.16 camel-disco-store.c
--- camel-disco-store.c	31 Aug 2005 04:21:56 -0000	1.16
+++ camel-disco-store.c	12 Nov 2005 06:47:24 -0000
@@ -159,6 +159,9 @@
 	case CAMEL_DISCO_STORE_RESYNCING:
 		if (!CDS_CLASS (service)->connect_online (service, ex))
 			return FALSE;
+
+		if ( !store->diary )
+			return TRUE;
 		d(printf(" diary is %s\n", camel_disco_diary_empty(store->diary)?"empty":"not empty"));
 		if (camel_disco_diary_empty (store->diary))
 			return TRUE;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]