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 705706 - When searching EWS contacts the UI blocks
When searching EWS contacts the UI blocks
Status: RESOLVED DUPLICATE of bug 630504
Product: evolution
Classification: Applications
Component: Contacts
3.8.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2013-08-09 00:58 UTC by Brian J. Murrell
Modified: 2014-03-10 17:48 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Brian J. Murrell 2013-08-09 00:58:59 UTC
I have an EWS account on an Exchange Server with a fairly large contact list.  When searching for contacts in the "Select Contacts From Address Book" dialog (as a result of pressing the "To:" or "CC:" labels in the composer) the search blocks the UI of all open Evolution windows.

The threaded stack trace looks like (apologies in advance but I'm not sure how the Fedora abrt/etc. system installs debuginfo packages in /var/cache/abrt-di and how I can achieve the same outside of abrt -- and I don't want to duplicate that effort by using yum/rpm to install debuginfo packages):

Thread 1 (Thread 0x7fac84ae5a40 (LWP 2899))

  • #0 node_get_next
    from /lib64/libglib-2.0.so.0
  • #1 lookup_elt_with_offset.isra.2
    from /lib64/libgtk-3.so.0
  • #2 gtk_real_tree_model_sort_convert_child_path_to_path
    from /lib64/libgtk-3.so.0
  • #3 gtk_tree_model_sort_row_inserted
    from /lib64/libgtk-3.so.0
  • #4 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #5 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #6 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #7 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #8 row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #9 child_row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #10 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #11 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #14 row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #15 view_contacts_added
    from /usr/lib64/evolution/3.8/libeutil.so
  • #16 g_cclosure_marshal_VOID__POINTERv
    from /lib64/libgobject-2.0.so.0
  • #17 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #20 book_client_view_emit_objects_added_idle_cb
    from /lib64/libebook-1.2.so.14
  • #21 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #22 g_main_context_iterate.isra.22
    from /lib64/libglib-2.0.so.0
  • #23 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #24 gtk_dialog_run
    from /lib64/libgtk-3.so.0
  • #25 composer_name_header_clicked
    from /usr/lib64/evolution/3.8/libcomposer.so
  • #26 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #27 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #28 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #29 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #32 gtk_real_button_released
    from /lib64/libgtk-3.so.0
  • #33 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #34 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #35 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #36 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #37 gtk_button_button_release
    from /lib64/libgtk-3.so.0
  • #38 _gtk_marshal_BOOLEAN__BOXEDv
    from /lib64/libgtk-3.so.0
  • #39 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #40 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #41 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #42 gtk_widget_event_internal
    from /lib64/libgtk-3.so.0
  • #43 propagate_event
    from /lib64/libgtk-3.so.0
  • #44 gtk_main_do_event
    from /lib64/libgtk-3.so.0
  • #45 gdk_event_source_dispatch
    from /lib64/libgdk-3.so.0
  • #46 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #47 g_main_context_iterate.isra.22
    from /lib64/libglib-2.0.so.0
  • #48 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #49 gtk_main
    from /lib64/libgtk-3.so.0
  • #50 main

Oh, and what looks nasty is that after the UI unblocks, pressumably because the search is done, it blocks again, (for minutes at a time BTW) for updates to the search box.  Quite unusable in fact with 100K contacts, even when they are locally cached -- which I understand they are supposed to be.
Comment 1 Brian J. Murrell 2013-08-09 01:10:35 UTC
Ahhh.  Seems like I might have figured out how to utilize /var/cache/abrt-di:

  • #0 node_get_next
    from /lib64/libglib-2.0.so.0
  • #1 lookup_elt_with_offset
    at gtktreemodelsort.c line 726
  • #2 gtk_real_tree_model_sort_convert_child_path_to_path
    at gtktreemodelsort.c line 2265
  • #3 gtk_tree_model_sort_row_inserted
    at gtktreemodelsort.c line 985
  • #4 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #5 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #6 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #7 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #8 row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #9 child_row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #10 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #11 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #14 row_inserted
    from /usr/lib64/evolution/3.8/libeutil.so
  • #15 view_contacts_added
    from /usr/lib64/evolution/3.8/libeutil.so
  • #16 g_cclosure_marshal_VOID__POINTERv
    from /lib64/libgobject-2.0.so.0
  • #17 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #20 book_client_view_emit_objects_added_idle_cb
    from /lib64/libebook-1.2.so.14
  • #21 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #22 g_main_context_iterate.isra.22
    from /lib64/libglib-2.0.so.0
  • #23 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #24 gtk_dialog_run
    at gtkdialog.c line 1110
  • #25 composer_name_header_clicked
    from /usr/lib64/evolution/3.8/libcomposer.so
  • #26 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #27 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #28 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #29 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #32 gtk_real_button_released
    at gtkbutton.c line 1967
  • #33 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #34 signal_emit_unlocked_R
    from /lib64/libgobject-2.0.so.0
  • #35 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #36 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #37 gtk_button_button_release
    at gtkbutton.c line 1802
  • #38 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #39 _g_closure_invoke_va
    from /lib64/libgobject-2.0.so.0
  • #40 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #41 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #42 gtk_widget_event_internal
    at gtkwidget.c line 6714
  • #43 gtk_widget_event
    at gtkwidget.c line 6371
  • #44 propagate_event_up
    at gtkmain.c line 2393
  • #45 propagate_event
    at gtkmain.c line 2501
  • #46 gtk_main_do_event
    at gtkmain.c line 1716
  • #47 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #48 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #49 g_main_context_iterate.isra.22
    from /lib64/libglib-2.0.so.0
  • #50 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #51 gtk_main
    at gtkmain.c line 1156
  • #52 main

With evolution using >99% of a core.
Comment 2 André Klapper 2013-08-09 04:23:24 UTC
Please install debug packages for glib2, evolution, evolution-data-server and paste a new stacktrace here. You can also use "gdb" and enter "thread apply all bt" instead of copying from abrt.
Comment 3 André Klapper 2014-02-26 15:05:19 UTC
Unfortunately closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!
Comment 4 Brian J. Murrell 2014-03-06 16:28:26 UTC
I think I have the trace you are looking for:

Attaching to program: /usr/bin/evolution, process 24538
[New LWP 25697]
[New LWP 24798]
[New LWP 24706]
[New LWP 24678]
[New LWP 24654]
[New LWP 24644]
[New LWP 24643]
[New LWP 24642]
[New LWP 24641]
[New LWP 24640]
[New LWP 24639]
[New LWP 24638]
[New LWP 24608]
[New LWP 24607]
[New LWP 24544]
[New LWP 24543]
[New LWP 24542]
[New LWP 24541]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib64/libgobject-2.0.so.0.3800.2-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace
0x0000003343261bd7 in node_get_next (node=0xd35c600) at gsequence.c:1623
1623	gsequence.c: No such file or directory.

Thread 1 (Thread 0x7fe3d625ca80 (LWP 24538))

  • #0 node_get_next
    at gsequence.c line 1623
  • #1 lookup_elt_with_offset
    at gtktreemodelsort.c line 723
  • #2 gtk_real_tree_model_sort_convert_child_path_to_path
    at gtktreemodelsort.c line 2262
  • #3 gtk_tree_model_sort_row_inserted
    at gtktreemodelsort.c line 982
  • #4 g_closure_invoke
    at gclosure.c line 777
  • #5 signal_emit_unlocked_R
    at gsignal.c line 3586
  • #6 g_signal_emit_valist
    at gsignal.c line 3330
  • #7 g_signal_emit
    at gsignal.c line 3386
  • #8 gtk_tree_model_row_inserted
    at gtktreemodel.c line 1820
  • #9 row_inserted
    at e-tree-model-generator.c line 277
  • #10 child_row_inserted
    at e-tree-model-generator.c line 704
  • #11 g_closure_invoke
    at gclosure.c line 777
  • #12 signal_emit_unlocked_R
    at gsignal.c line 3586
  • #13 g_signal_emit_valist
    at gsignal.c line 3330
  • #14 g_signal_emit
    at gsignal.c line 3386
  • #15 gtk_tree_model_row_inserted
    at gtktreemodel.c line 1820
  • #16 row_inserted
    at e-contact-store.c line 259
  • #17 view_contacts_added
    at e-contact-store.c line 553
  • #18 g_cclosure_marshal_VOID__POINTERv
    at gmarshal.c line 1236
  • #19 _g_closure_invoke_va
    at gclosure.c line 840
  • #20 g_signal_emit_valist
    at gsignal.c line 3238
  • #21 g_signal_emit
    at gsignal.c line 3386
  • #22 book_client_view_emit_objects_added_idle_cb
    at e-book-client-view.c line 169
  • #23 g_main_dispatch
    at gmain.c line 3066
  • #24 g_main_context_dispatch
    at gmain.c line 3642
  • #25 g_main_context_iterate
    at gmain.c line 3713
  • #26 g_main_loop_run
    at gmain.c line 3907
  • #27 gtk_dialog_run
    at gtkdialog.c line 1075
  • #28 composer_name_header_clicked
    at e-composer-name-header.c line 251
  • #29 _g_closure_invoke_va
    at gclosure.c line 840
  • #30 g_signal_emit_valist
    at gsignal.c line 3238
  • #31 g_signal_emit
    at gsignal.c line 3386
  • #32 _g_closure_invoke_va
    at gclosure.c line 840
  • #33 g_signal_emit_valist
    at gsignal.c line 3238
  • #34 g_signal_emit
    at gsignal.c line 3386
  • #35 gtk_real_button_released
    at gtkbutton.c line 2106
  • #36 _g_closure_invoke_va
    at gclosure.c line 840
  • #37 g_signal_emit_valist
    at gsignal.c line 3238
  • #38 g_signal_emit
    at gsignal.c line 3386
  • #39 gtk_button_button_release
    at gtkbutton.c line 1938
  • #40 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #41 _g_closure_invoke_va
    at gclosure.c line 840
  • #42 g_signal_emit_valist
    at gsignal.c line 3238
  • #43 g_signal_emit
    at gsignal.c line 3386
  • #44 gtk_widget_event_internal
    at gtkwidget.c line 7168
  • #45 gtk_widget_event
    at gtkwidget.c line 6830
  • #46 propagate_event_up
    at gtkmain.c line 2391
  • #47 propagate_event
    at gtkmain.c line 2499
  • #48 gtk_main_do_event
    at gtkmain.c line 1714
  • #49 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #50 g_main_dispatch
    at gmain.c line 3066
  • #51 g_main_context_dispatch
    at gmain.c line 3642
  • #52 g_main_context_iterate
    at gmain.c line 3713
  • #53 g_main_loop_run
    at gmain.c line 3907
  • #54 gtk_main
    at gtkmain.c line 1158
  • #55 main
    at main.c line 683

Comment 5 Milan Crha 2014-03-10 17:48:23 UTC
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.

*** This bug has been marked as a duplicate of bug 630504 ***