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 580198 - Crashes when going online after offline message movement in IMAP
Crashes when going online after offline message movement in IMAP
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: BugBuddyBugs
2.26.x (obsolete)
Other All
: High critical
: ---
Assigned To: Evolution Triage Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2009-04-25 07:41 UTC by Pavel Roskin
Modified: 2009-06-09 10:59 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
proposed eds patch (7.73 KB, patch)
2009-05-21 13:43 UTC, Milan Crha
committed Details | Review

Description Pavel Roskin 2009-04-25 07:41:53 UTC
What were you doing when the application crashed?
Trying to reproduce Fedora bug #497598 after upgrading to rawhide.  Yes, it's still there, but now with a nice GUI.


Distribution: Fedora release 10.92 (Rawhide)
Gnome Release: 2.26.1 2009-04-13 (Red Hat, Inc)
BugBuddy Version: 2.26.0

System: Linux 2.6.30-rc3-wl #93 SMP Sat Apr 25 02:58:42 EDT 2009 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10503000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora
GTK+ Modules: canberra-gtk-module, pk-gtk-module, gnomebreakpad

Memory status: size: 1181769728 vsize: 1181769728 resident: 28979200 share: 19755008 rss: 28979200 rss_rlim: 18446744073709551615
CPU usage: start_time: 1240645070 rtime: 54 utime: 40 stime: 14 cutime:0 cstime: 2 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/evolution'

[?1034h[Thread debugging using libthread_db enabled]
[New Thread 0x7fceecb57910 (LWP 2603)]
[New Thread 0x7fcefd0d9910 (LWP 2598)]
[New Thread 0x7fceee5f1910 (LWP 2595)]
[New Thread 0x7fceeedf2910 (LWP 2594)]
[New Thread 0x7fceef5f3910 (LWP 2593)]
[New Thread 0x7fceefdf4910 (LWP 2592)]
[New Thread 0x7fcefdb02910 (LWP 2589)]
[New Thread 0x7fcefe303910 (LWP 2588)]
0x00007fcf0b3ecca3 in poll () from /lib64/libc.so.6

Thread 2 (Thread 0x7fceecb57910 (LWP 2603))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 g_spawn_sync
    from /lib64/libglib-2.0.so.0
  • #2 g_spawn_command_line_sync
    from /lib64/libglib-2.0.so.0
  • #3 ??
    from /usr/lib64/gtk-2.0/modules/libgnomebreakpad.so
  • #4 <signal handler called>
  • #5 raise
    from /lib64/libc.so.6
  • #6 abort
    from /lib64/libc.so.6
  • #7 g_assertion_message
    from /lib64/libglib-2.0.so.0
  • #8 g_assertion_message_expr
    from /lib64/libglib-2.0.so.0
  • #9 camel_object_bag_reserve
    at camel-object.c line 2209
  • #10 camel_store_get_folder
    at camel-store.c line 313
  • #11 journal_decode_folder
    at camel-imap-journal.c line 313
  • #12 imap_entry_play
    at camel-imap-journal.c line 369
  • #13 camel_offline_journal_replay
    at camel-offline-journal.c line 217
  • #14 camel_imap_folder_new
    at camel-imap-folder.c line 299
  • #15 get_folder_offline
    at camel-imap-store.c line 2041
  • #16 get_folder
    at camel-imap-store.c line 1807
  • #17 camel_store_get_folder
    at camel-store.c line 345
  • #18 journal_decode_folder
    at camel-imap-journal.c line 313
  • #19 imap_entry_play
    at camel-imap-journal.c line 369
  • #20 camel_offline_journal_replay
    at camel-offline-journal.c line 217
  • #21 camel_imap_folder_new
    at camel-imap-folder.c line 299
  • #22 get_folder_offline
    at camel-imap-store.c line 2041
  • #23 get_folder
    at camel-imap-store.c line 1807
  • #24 camel_store_get_folder
    at camel-store.c line 345
  • #25 mail_tool_uri_to_folder
    at mail-tools.c line 331
  • #26 get_folder_exec
    at mail-ops.c line 1214
  • #27 mail_msg_proxy
    at mail-mt.c line 520
  • #28 ??
    from /lib64/libglib-2.0.so.0
  • #29 ??
    from /lib64/libglib-2.0.so.0
  • #30 start_thread
    from /lib64/libpthread.so.0
  • #31 clone
    from /lib64/libc.so.6
  • #32 ??


----------- .xsession-errors (304 sec old) ---------------------
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
xterm:  fatal IO error 11 (Resource temporarily unavailable) or KillClient on X server ":0.0"
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 144 requests (144 known processed) with 0 events remaining.
      after 247 requests (247 known processed) with 3 events remaining.
      after 5566140 requests (5566140 known processed) with 55 events remaining.
The application 'gnome-screensaver' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed
the application.
icewm-session: Warning: File still open: fd=4, target='pipe:[6973]' (missing FD_CLOEXEC?)
icewm-session: Warning: Closing file descriptor: 4
icewm-session: Warning: File still open: fd=5, target='pipe:[6973]' (missing FD_CLOEXEC?)
icewm-session: Warning: Closing file descriptor: 5
icewmbg: Can't open display: :0. X must be running and $DISPLAY set.
--------------------------------------------------
Comment 1 Pavel Roskin 2009-04-27 06:21:52 UTC
More information at https://bugzilla.redhat.com/show_bug.cgi?id=497598
Comment 2 Milan Crha 2009-05-21 13:43:57 UTC
Created attachment 135096 [details] [review]
proposed eds patch

for evolution-data-server;

Highlights:
a) folder's lock on refresh_info added. it's required because IMAP's journal
   replay uses camel_folder_get_message, which locks this lock. There can
   happen that threads will hold folder's lock, but will wait connect_lock,
   but the other has this locks opposite. Thus adding lock there.
b) shouldn't replay journal always
c) busy-lock, when journal's message missing in summary, fixed
d) get_matching translates from local summary UIDs to real UIDs too
e) journal_decode_folder uses its 'folder' when asked for it, doesn't open
   new for the operation

Side-effect:
IMAP changes done in offline should work much better than before.
Comment 3 Srinivasa Ragavan 2009-06-09 03:45:34 UTC
Milan, seems awesome right.

I have a hack in camel-local-folder.c:local_refresh_info where I lock it there.

Just remove the lock. It was originally in camel-folder/refresh_info but there was a ugly hang, when replaying with disco. Since we moved away from disco to offline, it should have fixed it.

So remove that hack and commit to master.
Comment 4 Milan Crha 2009-06-09 10:59:44 UTC
Created commit 7aaf3c8 in eds master (2.27.3+)

Remove the code you asked to remove from camel-local-folder.c:local_refresh_info.