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 647116 - crash in g_error_matches, e_contact_editor_contact_modified
crash in g_error_matches, e_contact_editor_contact_modified
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Contacts
2.32.x (obsolete)
Other All
: Normal critical
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2011-04-07 22:31 UTC by Christian Albertsen
Modified: 2011-04-19 12:18 UTC
See Also:
GNOME target: ---
GNOME version: 2.31/2.32


Attachments
evo patch (1.11 KB, patch)
2011-04-19 12:16 UTC, Milan Crha
committed Details | Review

Description Christian Albertsen 2011-04-07 22:31:52 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

Thread 1 (Thread 0x7f7676075940 (LWP 18387))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 g_spawn_sync
    from /usr/lib64/libglib-2.0.so.0
  • #2 g_spawn_command_line_sync
    from /usr/lib64/libglib-2.0.so.0
  • #3 run_bug_buddy
    at gnome-breakpad.cc line 369
  • #4 check_if_gdb
    at gnome-breakpad.cc line 440
  • #5 bugbuddy_segv_handle
    at gnome-breakpad.cc line 223
  • #6 segv_redirect
  • #7 <signal handler called>
  • #8 g_error_matches
    from /usr/lib64/libglib-2.0.so.0
  • #9 e_contact_editor_contact_modified
    from /usr/lib64/evolution/2.32/libecontacteditor.so.0
  • #10 g_closure_invoke
    from /usr/lib64/libgobject-2.0.so.0
  • #11 signal_emit_unlocked_R
    from /usr/lib64/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib64/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib64/libgobject-2.0.so.0
  • #14 contact_modified_cb
    from /usr/lib64/evolution/2.32/libecontacteditor.so.0
  • #15 final_cb
    from /usr/lib64/evolution/2.32/libecontacteditor.so.0
  • #16 modify_contact_reply
    from /usr/lib64/libebook-1.2.so.10
  • #17 reply_cb
    from /usr/lib64/libgio-2.0.so.0
  • #18 g_dbus_connection_call_done
    from /usr/lib64/libgio-2.0.so.0
  • #19 complete_in_idle_cb
    from /usr/lib64/libgio-2.0.so.0
  • #20 g_main_context_dispatch
    from /usr/lib64/libglib-2.0.so.0
  • #21 g_main_context_iterate
    from /usr/lib64/libglib-2.0.so.0
  • #22 g_main_loop_run
    from /usr/lib64/libglib-2.0.so.0
  • #23 gtk_dialog_run
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #24 e_alert_run_dialog
    from /usr/lib64/evolution/2.32/libeutil.so.0
  • #25 e_alert_run_dialog_for_args
    from /usr/lib64/evolution/2.32/libeutil.so.0
  • #26 g_closure_invoke
    from /usr/lib64/libgobject-2.0.so.0
  • #27 signal_emit_unlocked_R
    from /usr/lib64/libgobject-2.0.so.0
  • #28 g_signal_emit_valist
    from /usr/lib64/libgobject-2.0.so.0
  • #29 g_signal_emit
    from /usr/lib64/libgobject-2.0.so.0
  • #30 g_closure_invoke
    from /usr/lib64/libgobject-2.0.so.0
  • #31 signal_emit_unlocked_R
    from /usr/lib64/libgobject-2.0.so.0
  • #32 g_signal_emit_valist
    from /usr/lib64/libgobject-2.0.so.0
  • #33 g_signal_emit
    from /usr/lib64/libgobject-2.0.so.0
  • #34 gdbus_book_closed_cb
    from /usr/lib64/libebook-1.2.so.10
  • #35 emit_signal_instance_in_idle_cb
    from /usr/lib64/libgio-2.0.so.0
  • #36 g_main_context_dispatch
    from /usr/lib64/libglib-2.0.so.0
  • #37 g_main_context_iterate
    from /usr/lib64/libglib-2.0.so.0
  • #38 g_main_loop_run
    from /usr/lib64/libglib-2.0.so.0
  • #39 gtk_main
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #40 main
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...
--------------------------------------------------
Comment 1 Akhil Laddha 2011-04-08 03:20:24 UTC
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
Comment 2 Milan Crha 2011-04-19 06:29:52 UTC
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

Thread 1 (Thread 0x7ff8121ea980 (LWP 31992))

  • #0 g_error_matches
    at gerror.c line 185
  • #1 e_contact_editor_contact_modified
    at e-contact-editor.c line 219
  • #2 g_closure_invoke
    at gclosure.c line 766
  • #3 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #4 g_signal_emit_valist
    at gsignal.c line 2983
  • #5 g_signal_emit
    at gsignal.c line 3040
  • #6 contact_modified_cb
    at e-contact-editor.c line 3120
  • #7 final_cb
    at eab-contact-merging.c line 144
  • #8 modify_contact_reply
    at e-book.c line 583
  • #9 reply_cb
    at gdbusproxy.c line 2163
  • #10 g_dbus_connection_call_done
    at gdbusconnection.c line 4971
  • #11 complete_in_idle_cb
    at gsimpleasyncresult.c line 702
  • #12 g_main_dispatch
    at gmain.c line 2149
  • #13 g_main_context_dispatch
    at gmain.c line 2702
  • #14 g_main_context_iterate
    at gmain.c line 2780
  • #15 g_main_loop_run
    at gmain.c line 2988
  • #16 IA__gtk_main
    at gtkmain.c line 1237
  • #17 main
    at main.c line 679

Comment 3 Milan Crha 2011-04-19 12:13:20 UTC
> 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.
Comment 4 Milan Crha 2011-04-19 12:16:01 UTC
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.
Comment 5 Milan Crha 2011-04-19 12:18:34 UTC
Created commit db35e41 in evo master (3.1.1+)
Created commit 525406b in evo gnome-3-0 (3.0.1+)