GNOME Bugzilla – Bug 539334
crash in e_week_view_find_event_from_uid at e-week-view.c:3677
Last modified: 2009-08-20 15:18:36 UTC
What were you doing when the application crashed? Nothing that I know of, evolution was idle at the time and not being used (aside from periodic mail checks and whatnot) Distribution: openSUSE 11.0 (X86-64) Gnome Release: 2.22.1 2008-06-07 (SUSE) BugBuddy Version: 2.22.0 System: Linux 2.6.25.5-1.1-default #1 SMP 2008-06-07 01:55:22 +0200 x86_64 X Vendor: The X.Org Foundation X Vendor Release: 10400090 Selinux: No Accessibility: Enabled GTK+ Theme: Gilouche Icon Theme: Gilouche Memory status: size: 971669504 vsize: 971669504 resident: 352284672 share: 29138944 rss: 381423616 rss_rlim: 3471764480 CPU usage: start_time: 1213899084 rtime: 77104 utime: 51912 stime: 25192 cutime:27 cstime: 66 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0x7f79edf4f760 (LWP 6627)] [New Thread 0x42ee0950 (LWP 7103)] [New Thread 0x41857950 (LWP 7087)] 0x00007f79e5caa64f in __libc_waitpid (pid=31953, stat_loc=0x7ffff5f9f1a0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:41 in ../sysdeps/unix/sysv/linux/waitpid.c
+ Trace 200957
Thread 1 (Thread 0x7f79edf4f760 (LWP 6627))
----------- .xsession-errors --------------------- subcell_view 0xacd5f0 deleted before the a11y object 0x73bbda0 subcell_view 0xacd5f0 deleted before the a11y object 0x922f5c0 subcell_view 0x70b3f80 deleted before the a11y object 0x73bddc0 subcell_view 0x70b3f80 deleted before the a11y object 0x4cc52b0 Number of items in the folder: 15914 Number of items in the folder: 11166 Number of items in the folder: 11165 Number of items in the folder: 11165 Number of items in the folder: 11166 41 ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory. --------------------------------------------------
As this bug seems to probably be Groupwise specific I've also opened a bug at https://bugzilla.novell.com/show_bug.cgi?id=402407 for Novell tracking.
*** Bug 539353 has been marked as a duplicate of this bug. ***
*** Bug 539146 has been marked as a duplicate of this bug. ***
Thanks for you good bug report :) Can you reproduce this issue? Would you mind to share the event with the uid "2008-06-05T16:06:23Z_A1DA00B1@novacoast.com" with us? For the devs: the crashing line seems to be if (event->comp_data->client != client) continue;
I can share anything you need, I'm not exactly sure what you would need though. Is it possible to export single events from the calendar?
Hi Dan, I noticed reports with similar crash in the same place before, the problem is the event->comp_data is NULL, but Evo tries to access a 'client' member of that structure, which results in SIGSEGV. I would like to know/find why that happened, because it's always easier to fix some issue on proper place than just workaround it on the other. Maybe the additional check for event->comp != NULL is correct there, but without any other knowledge/prove one cannot be sure. The question is same as Tobias asked: Are you able to reproduce this reliably? And if so, can you give us some steps? It can be related to the editing of some event in the week view, and then something happened, like a refresh interval occurs and there has been found some changes in the calendar from the network? Just a guess.
Hi Milan, I can definitely reproduce this within 5-10 minutes of accessing my Groupwise calendar in evolution. I've blown away my calendar cache and it rebuilds itself just fine but will eventually crash anyway. It doesn't matter if I'm currently in the calendar component, if it's been opened at any point it will crash. Evolution is perfectly stable for as long as I need if I don't open the calendar component though. The steps on my system or fairly simple, if I open the calendar component at any point while running evolution, I have a short amount of time before evolution will crash. I can add appointments/meetings from the mailer (or any other component) without causing any problems but launching the calendar will cause a crash. My default calendar view is the month view if that makes any difference. Here's another crash trace (just in case anything has changed in my crash): Distribution: openSUSE 11.0 (X86-64) Gnome Release: 2.22.1 2008-06-07 (SUSE) BugBuddy Version: 2.22.0 System: Linux 2.6.25.11-0.1-default #1 SMP 2008-07-13 20:48:28 +0200 x86_64 X Vendor: The X.Org Foundation X Vendor Release: 10400090 Selinux: No Accessibility: Enabled GTK+ Theme: Gilouche Icon Theme: Gilouche Memory status: size: 791965696 vsize: 791965696 resident: 212262912 share: 27303936 rss: 239566848 rss_rlim: 3471764480 CPU usage: start_time: 1217287609 rtime: 22612 utime: 16818 stime: 5794 cutime:5 cstime: 21 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0x7ffafdf52760 (LWP 32148)] [New Thread 0x4349b950 (LWP 13521)] [New Thread 0x41b0b950 (LWP 32243)] 0x00007ffaf5cae64f in __libc_waitpid (pid=2294, stat_loc=0x7fff05fa41e0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:41 in ../sysdeps/unix/sysv/linux/waitpid.c
+ Trace 204090
Thread 1 (Thread 0x7ffafdf52760 (LWP 32148))
----------- .xsession-errors (108 sec old) --------------------- Printer 'HP_Photosmart_2570_series' has 0 jobs for delder Flash Player: Warning: environment variable G_FILENAME_ENCODING is set and is not UTF-8 Flash Player: Warning: environment variable G_FILENAME_ENCODING is set and is not UTF-8 Flash Player: Warning: environment variable G_FILENAME_ENCODING is set and is not UTF-8 (gnome-panel:19182): libecal-WARNING **: e-cal.c:318: Unexpected response [NoScript] [NoScript] external load intercepted ** (nm-vpnc-auth-dialog:23646): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (nm-vpnc-auth-dialog:23646): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory Window manager warning: Invalid WM_TRANSIENT_FOR window 0x97 specified for 0x8800003 (evmsgui (o). [NoScript] [NoScript] external load intercepted [NoScript] [NoScript] external load intercepted [NoScript] [NoScript] external load intercepted -------------------------------------------------- Thanks, Dan
The event changed, but the place where it crashed didn't. Can you run evolution from console in gdb, let it crash and when it crashes do 'list' and 'print event' and 'print event->comp_data', and copy here all the lines since the crash (one or two lines before you type 'list' in gdb prompt), please? BTW, what is your exact version of the evolution? The actual is 2.22.3.1 and the line where it crashed for you doesn't point where I think it crashes. If there are some console messages, please paste them here too, thanks.
The wild guess is it is same as bug #544187, look for warnings like: --- calendar-gui-CRITICAL **: e_cal_model_get_component_at: assertion `row >= 0 && row < priv->objects->len' failed calendar-gui-CRITICAL **: e_cal_model_copy_component_data: assertion `comp_data != NULL' failed --- on console
I'm afraid this looks like a different bug from #544187. Here is what I get from gdb for my evolution (evolution-2.22.1.1-15.1): (gdb) run Starting program: /usr/bin/evolution [Thread debugging using libthread_db enabled] [New Thread 0x7f31847df760 (LWP 15865)] CalDAV Eplugin starting up ... [New Thread 0x41893950 (LWP 15894)] ..... [New Thread 0x43096950 (LWP 15952)] [Thread 0x42895950 (LWP 15951) exited] (evolution:15865): camel-groupwise-provider-WARNING **: Could not connect..failure connecting [New Thread 0x42895950 (LWP 15953)] [New Thread 0x43897950 (LWP 15954)] [Thread 0x42895950 (LWP 15953) exited] [New Thread 0x42895950 (LWP 15955)] ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory e-data-server-ui-Message: Unable to find password(s) in keyring (Keyring reports: No matching results) ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory [Thread 0x43897950 (LWP 15954) exited] ..... [Thread 0x41893950 (LWP 16006) exited] (evolution:15865): e-data-server-DEBUG: Loading categories from "/home/delder/.evolution/categories.xml" (evolution:15865): e-data-server-DEBUG: Loaded 29 categories [New Thread 0x41893950 (LWP 16029)] [New Thread 0x42094950 (LWP 16030)] [Thread 0x42094950 (LWP 16030) exited] [New Thread 0x42094950 (LWP 16031)] [Thread 0x42094950 (LWP 16031) exited] [New Thread 0x42094950 (LWP 16032)] (evolution:15865): libecal-WARNING **: e-cal.c:318: Unexpected response [New Thread 0x40cfc950 (LWP 16033)] (evolution:15865): libecal-WARNING **: e-cal.c:318: Unexpected response [New Thread 0x43897950 (LWP 16034)] [New Thread 0x44098950 (LWP 16035)] [Thread 0x44098950 (LWP 16035) exited] (evolution:15865): libecal-WARNING **: e-cal.c:318: Unexpected response [New Thread 0x44098950 (LWP 16036)] [New Thread 0x44899950 (LWP 16037)] (evolution:15865): libecal-WARNING **: e-cal.c:318: Unexpected response [New Thread 0x4509a950 (LWP 16038)] [Thread 0x44899950 (LWP 16037) exited] [New Thread 0x44899950 (LWP 16039)] [Thread 0x42094950 (LWP 16032) exited] ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory ** (evolution:15865): WARNING **: couldn't connect to daemon at $GNOME_KEYRING_SOCKET: /tmp/keyring-MJ6YEI/socket: No such file or directory [Thread 0x41893950 (LWP 16029) exited] [New Thread 0x41893950 (LWP 16062)] [Thread 0x44098950 (LWP 16036) exited] ..... [New Thread 0x43096950 (LWP 21244)] [Thread 0x43096950 (LWP 21244) exited] Number of items in the folder: 7216 [Thread 0x44098950 (LWP 21184) exited] [New Thread 0x44098950 (LWP 21417)] ..... [New Thread 0x42895950 (LWP 21598)] [Thread 0x42895950 (LWP 21598) exited] Number of items in the folder: 7216 [Thread 0x43096950 (LWP 21538) exited] [New Thread 0x43096950 (LWP 21776)] ..... [Thread 0x43096950 (LWP 25159) exited] [Thread 0x42895950 (LWP 25166) exited] [New Thread 0x42895950 (LWP 25222)] [Thread 0x42895950 (LWP 25222) exited] [New Thread 0x42895950 (LWP 25397)] [Thread 0x42895950 (LWP 25397) exited] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7f31847df760 (LWP 15865)] 0x00007f31719f7332 in e_week_view_find_event_from_uid (week_view=0x26ae320, client=0x25e9ba0, uid=0x2834720 "040000008200E00074C5B7101A82E00800000000C07035764FDCC801", '0' <repeats 16 times>, "100000006B339E67E2365F4B8153BA7E522F7E6C", rid=0x0, event_num_return=0x7fff8c82f28c) at e-week-view.c:3677 3677 e-week-view.c: No such file or directory. in e-week-view.c (gdb) list 3672 in e-week-view.c (gdb) print event $1 = (EWeekViewEvent *) 0x2a6d0b0 (gdb) print event->comp_data $2 = (ECalModelComponent *) 0x0 (gdb) thread apply all bt
+ Trace 204239
Thread 1 (Thread 0x7f31847df760 (LWP 15865))
Please let me know what other information I can provide to help track this down.
Thanks, this information is enough, it's really in the way I suspected, and as Tobias mentioned above. The workaround is quite clear, but it will crash somewhere else for sure. Can you try to turn off your assistive technologies? Maybe it will help a bit. (I see there a spi and atk involved, so curious how much they are involved in the crash itself.)
I can't thank you enough for the suggestion of turning off the assistive technologies, I haven't been able to get a calendar crash since. I didn't realize they were turned on and don't need them so this is a perfect workaround for me. I've had the calendar component running for 3 days now without a crash since I disabled atk/spi so this definitely appears to be the culprit.
Is this a dup of bug 487749?
(In reply to comment #13) > Is this a dup of bug 487749? I miss involvement of the atk/spi calls in that bug, so I guess it isn't a dupe. It's possible it's related, though.
*** Bug 551776 has been marked as a duplicate of this bug. ***
*** Bug 575792 has been marked as a duplicate of this bug. ***
From the latest bug (which I really wouldn't expect on 2.24): ...
+ Trace 213911
so the model_comps_deleted_cb is called twice, in the same thread and the lower call of e_week_view_remove_event_cb is in the middle of the removal, thus after event->comp_data = NULL, which causes crash in e_week_view_find_event_from_uid. Turning off accessibility usually helps as a workaround.
Created attachment 131520 [details] [review] proposed evo patch for evolution; This fixes it for me. It depends on data too, though I do not have public test data here, but steps are usually like this: a) open evolution, close evolution (to have eds running with cached objects) b) open evolution in mailer (evolution --component mail) c) go to calendar view (Ctrl+3) Once it crashes, three times+ it doesn't. The code changes are preventing the state shown in the backtrace, thus it doesn't crash here with the patch.
can this get a review?
*** Bug 580881 has been marked as a duplicate of this bug. ***
*** Bug 581219 has been marked as a duplicate of this bug. ***
*** Bug 581273 has been marked as a duplicate of this bug. ***
Am not sure how this patch would solve the issue. If its a recursive call in the same thread, will the second mutex lock on the same thread not cause a hang ?
(In reply to comment #23) > If its a recursive call in the same thread, will the second mutex lock on > the same thread not cause a hang? Nope, the lock only guards access to new priv members, when the recursive call is done the lock is not held. > Am not sure how this patch would solve the issue. Basically, if the recursive call is detected, then the notification of the change is kept to the first call, it is not done in the inner calls. I'm not sure how to explain it better.
I see that the patch fixes the issue. But am not comfortable in assuming when a thread can be interrupted, in this case i guess we are assuming its interrupted only when process_fun is called. But queuing these operations in threads might cause problems in updating the UI. Please commit the patch and prolly we can change this if we find a better way to fix it.
Created commit bb0d4f9 in evo master (2.27.6+)
*** Bug 487749 has been marked as a duplicate of this bug. ***
*** Bug 588868 has been marked as a duplicate of this bug. ***