GNOME Bugzilla – Bug 647116
crash in g_error_matches, e_contact_editor_contact_modified
Last modified: 2011-04-19 12:18:44 UTC
What were you doing when the application crashed? I tried to modify an LDAP entry, which would have changed it's structural class. Distribution: Gentoo Base System release 2.0.2 Gnome Release: 2.32.1 2011-03-26 (Gentoo) BugBuddy Version: 2.30.0 System: Linux 2.6.36-gentoo-r5 #1 SMP Thu Mar 31 11:25:18 CEST 2011 x86_64 X Vendor: The X.Org Foundation X Vendor Release: 10904000 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome GTK+ Modules: canberra-gtk-module, gnomebreakpad Memory status: size: 922632192 vsize: 922632192 resident: 120606720 share: 44064768 rss: 120606720 rss_rlim: 18446744073709551615 CPU usage: start_time: 1302215248 rtime: 2320 utime: 2154 stime: 166 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution' [Thread debugging using libthread_db enabled] [New Thread 0x7f763fdf2700 (LWP 18427)] [New Thread 0x7f7647cac700 (LWP 18425)] [New Thread 0x7f764900b700 (LWP 18424)] [New Thread 0x7f76539cb700 (LWP 18422)] [New Thread 0x7f7644f07700 (LWP 18411)] [New Thread 0x7f7645708700 (LWP 18410)] [New Thread 0x7f7647007700 (LWP 18407)] [New Thread 0x7f764bdf3700 (LWP 18401)] [New Thread 0x7f76509c5700 (LWP 18400)] [New Thread 0x7f764b5f2700 (LWP 18399)] [New Thread 0x7f76511c6700 (LWP 18396)] [New Thread 0x7f76529c9700 (LWP 18393)] [New Thread 0x7f76531ca700 (LWP 18392)] [New Thread 0x7f76541cc700 (LWP 18390)] [New Thread 0x7f76549cd700 (LWP 18389)] [New Thread 0x7f765f9c2700 (LWP 18388)] 0x00007f7674537cad in waitpid () from /lib64/libpthread.so.0
+ Trace 226633
Thread 1 (Thread 0x7f7676075940 (LWP 18387))
A debugging session is active. Inferior 1 [process 18387] will be detached. Quit anyway? (y or n) [answered Y; input not from terminal] ----------- .xsession-errors (56379 sec old) --------------------- (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed (epiphany:14684): GLib-GIO-CRITICAL **: g_output_stream_write_all: assertion `G_IS_OUTPUT_STREAM (stream)' failed ...Too much output, ignoring rest... --------------------------------------------------
Thanks for taking the time to report this bug. Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Could you please install some debugging packages [1], start the application as normal, and reproduce the crash, if possible? Once bug-buddy pops up, you can find the stacktrace in the Details, now containing way more information. Please copy that stacktrace and paste it as a comment here. Thanks in advance! [1] debugging packages for evolution, evolution-data-server, gtkhtml2, gtk2 and glib2 (as far as those packages are provided by your distribution). More details can be found here: http://live.gnome.org/GettingTraces
Similar downstream bug report from 2.32.2: https://bugzilla.redhat.com/show_bug.cgi?id=697679 Steps to reproduce: 1. attempted to remove an existing contact's phone number from my "google contacts" contact list 2. received error message similar to "contact already exists" (didn't write it down, sorry) 3. attempted to perform step #1 again 4. crash
+ Trace 226781
Thread 1 (Thread 0x7ff8121ea980 (LWP 31992))
> Thread 1 (Thread 0x7ff8121ea980 (LWP 31992)): > #0 0x00000035efc2f267 in g_error_matches (error=0xc8001590, domain=3288, > code=12) at gerror.c:185 > #1 0x000000395f01a25d in e_contact_editor_contact_modified (editor=<value > optimized out>, error=0xc8001590, contact=<value optimized out>) > at e-contact-editor.c:219 > #2 0x00000035f080e03e in g_closure_invoke (closure=0x184dec0, > #3 0x00000035f081e64c in signal_emit_unlocked_R > #4 0x00000035f08287b5 in g_signal_emit_valist > #5 0x00000035f0828983 in g_signal_emit > #6 0x000000395f016a0e in contact_modified_cb (book=<value optimized out>, > error=0x7ff7c8001590, ecs=0x1738c80) at e-contact-editor.c:3120 > #7 0x00007ff80b0f5317 in final_cb (book=<value optimized out>, error= > <value optimized out>, closure=0x18eceb0) at eab-contact-merging.c:144 > #8 0x000000395a814fac in modify_contact_reply (gdbus_book=0x7ff7c002e520 > [EGdbusBookProxy], res=0x1cbe800, user_data=0x18fea10) at e-book.c:583 > err = 0x7ff7c8001590 > error = 0x7ff7c80013c0 This one is nice. See the 'error' value from frame 8 till the frame 1 and 0. It's still fine till frame 6, but when it comes out of the signal emission, then it's cut off its upper bits in frame 1.
Created attachment 186274 [details] [review] evo patch for evolution; The problem is with the signal definition. Even it uses correct marshaller, then its parameter type was G_TYPE_INT instead of G_TYPE_POINTER. There is not much difference with addresses in lower 32 bits, but as soon as the address exceeds the 32bit range, then the address value was cut.
Created commit db35e41 in evo master (3.1.1+) Created commit 525406b in evo gnome-3-0 (3.0.1+)