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 710171 - [abrt] EShellTaskbar: Gtk+ functions called out of the main thread
[abrt] EShellTaskbar: Gtk+ functions called out of the main thread
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
3.10.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2013-10-15 08:46 UTC by Milan Crha
Modified: 2013-10-18 14:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
evo patch (4.63 KB, patch)
2013-10-18 14:20 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2013-10-15 08:46:40 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=1018870

Version-Release number of selected component:
evolution-3.10.0-1.fc20

Additional info:
reporter:       libreport-2.1.8
backtrace_rating: 4
cmdline:        evolution
crash_function: _gtk_css_value_ref
executable:     /usr/bin/evolution
kernel:         3.11.4-302.fc20.i686+PAE

Core was generated by `evolution'.
Program terminated with signal SIGSEGV, Segmentation fault.

Thread 7 (Thread 0xb57ff900 (LWP 2800))

  • #0 _gtk_css_value_compute
    at gtkcssvalue.c line 105
  • #1 gtk_css_value_array_compute
    at gtkcssarrayvalue.c line 62
  • #2 _gtk_css_value_compute
    at gtkcssvalue.c line 107
  • #3 gtk_css_value_initial_compute
    at gtkcssinitialvalue.c line 81
  • #4 _gtk_css_value_compute
    at gtkcssvalue.c line 107
  • #5 _gtk_css_computed_values_compute_value
    at gtkcsscomputedvalues.c line 146
  • #6 _gtk_css_lookup_resolve
    at gtkcsslookup.c line 166
  • #7 build_properties
    at gtkstylecontext.c line 995
  • #8 style_data_lookup
    at gtkstylecontext.c line 1035
  • #9 _gtk_style_context_validate
    at gtkstylecontext.c line 3288
  • #10 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #11 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #12 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #13 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #14 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #15 _gtk_style_context_validate
    at gtkstylecontext.c line 3352
  • #16 gtk_container_idle_sizer
    at gtkcontainer.c line 1684
  • #17 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #18 _g_closure_invoke_va
    at gclosure.c line 840
  • #19 g_signal_emit_valist
    at gsignal.c line 3238
  • #20 g_signal_emit_by_name
    at gsignal.c line 3426
  • #21 gdk_frame_clock_paint_idle
    at gdkframeclockidle.c line 408
  • #22 gdk_threads_dispatch
    at gdk.c line 804
  • #23 g_timeout_dispatch
    at gmain.c line 4450
  • #24 g_main_dispatch
    at gmain.c line 3065
  • #25 g_main_context_dispatch
    at gmain.c line 3641
  • #26 g_main_context_iterate
    at gmain.c line 3712
  • #27 g_main_loop_run
    at gmain.c line 3906
  • #28 gtk_main
    at gtkmain.c line 1158
  • #29 main
    at main.c line 683

Thread 1 (Thread 0xa52ffb40 (LWP 7000))

  • #0 _gtk_css_value_ref
    at gtkcssvalue.c line 51
  • #1 gtk_css_value_inherit_compute
    at gtkcssinheritvalue.c line 48
  • #2 _gtk_css_value_compute
    at gtkcssvalue.c line 107
  • #3 _gtk_css_computed_values_compute_value
    at gtkcsscomputedvalues.c line 146
  • #4 _gtk_css_lookup_resolve
    at gtkcsslookup.c line 166
  • #5 build_properties
    at gtkstylecontext.c line 995
  • #6 style_data_lookup
    at gtkstylecontext.c line 1035
  • #7 build_properties
    at gtkstylecontext.c line 999
  • #8 style_data_lookup
    at gtkstylecontext.c line 1035
  • #9 gtk_style_context_should_animate
    at gtkstylecontext.c line 819
  • #10 _gtk_style_context_update_animating
    at gtkstylecontext.c line 833
  • #11 gtk_widget_map
    at gtkwidget.c line 4533
  • #12 gtk_container_map_child
    at gtkcontainer.c line 3379
  • #13 gtk_box_forall
    at gtkbox.c line 2096
  • #14 gtk_container_forall
    at gtkcontainer.c line 2127
  • #15 gtk_container_map
    at gtkcontainer.c line 3387
  • #16 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #17 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #18 _g_closure_invoke_va
    at gclosure.c line 840
  • #19 g_signal_emit_valist
    at gsignal.c line 3238
  • #20 g_signal_emit
    at gsignal.c line 3386
  • #21 gtk_widget_map
    at gtkwidget.c line 4527
  • #22 gtk_container_map_child
    at gtkcontainer.c line 3379
  • #23 gtk_frame_forall
    at gtkframe.c line 374
  • #24 gtk_container_forall
    at gtkcontainer.c line 2127
  • #25 gtk_container_map
    at gtkcontainer.c line 3387
  • #26 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #27 g_type_class_meta_marshalv
    at gclosure.c line 997
  • #28 _g_closure_invoke_va
    at gclosure.c line 840
  • #29 g_signal_emit_valist
    at gsignal.c line 3238
  • #30 g_signal_emit
    at gsignal.c line 3386
  • #31 gtk_widget_map
    at gtkwidget.c line 4527
  • #32 gtk_widget_set_parent
    at gtkwidget.c line 8902
  • #33 gtk_box_pack
    at gtkbox.c line 1060
  • #34 gtk_box_pack_start
    at gtkbox.c line 1606
  • #35 shell_taskbar_activity_add
    at e-shell-taskbar.c line 118
  • #36 g_cclosure_marshal_VOID__OBJECTv
    at gmarshal.c line 1312
  • #37 _g_closure_invoke_va
    at gclosure.c line 840
  • #38 g_signal_emit_valist
    at gsignal.c line 3238
  • #39 g_signal_emit
    at gsignal.c line 3386
  • #40 e_shell_backend_add_activity
    at e-shell-backend.c line 528
  • #41 g_cclosure_marshal_VOID__OBJECTv
    at gmarshal.c line 1312
  • #42 _g_closure_invoke_va
    at gclosure.c line 840
  • #43 g_signal_emit_valist
    at gsignal.c line 3238
  • #44 g_signal_emit
    at gsignal.c line 3386
  • #45 e_mail_ui_session_add_activity
    at e-mail-ui-session.c line 870
  • #46 regen_data_new
    at message-list.c line 477
  • #47 mail_regen_list
    at message-list.c line 5826
  • #48 message_list_folder_changed
    at message-list.c line 4341
  • #49 g_cclosure_marshal_VOID__POINTER
    at gmarshal.c line 1198
  • #50 g_closure_invoke
    at gclosure.c line 777
  • #51 signal_emit_unlocked_R
    at gsignal.c line 3586
  • #52 g_signal_emit_valist
    at gsignal.c line 3330
  • #53 g_signal_emit
    at gsignal.c line 3386
  • #54 camel_folder_changed
    at camel-folder.c line 3090
  • #55 ews_delete_messages
    at camel-ews-folder.c line 1777
  • #56 ews_synchronize_sync
    at camel-ews-folder.c line 1065
  • #57 camel_folder_synchronize_sync
    at camel-folder.c line 4325
  • #58 refresh_folders_exec
    at mail-send-recv.c line 1054
  • #59 mail_msg_proxy
    at mail-mt.c line 422
  • #60 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #61 g_thread_proxy
    at gthread.c line 798
  • #62 start_thread
    at pthread_create.c line 309
  • #63 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 129

Comment 1 Milan Crha 2013-10-15 08:48:28 UTC
The problem is that the crashing thread (in the backtrace Thread 1) calls gtk+ functions, but it's not the main thread (it's the Thread 7 in the backtrace), where gtk+ functions ought to be called.
Comment 2 Milan Crha 2013-10-18 14:20:23 UTC
Created attachment 257644 [details] [review]
evo patch

for evolution;

I cannot reproduce this, also I tried to delete messages in an EWS account, but this patch provides a general solution which makes sure that EShellTaskbar does UI operations only in the main/UI thread, which is how it should be. I believe this is easier than to chase for every single place where to add any idle postponing.
Comment 3 Milan Crha 2013-10-18 14:23:38 UTC
Created commit 431d718 in evo master (3.11.1+)
Created commit a7f61d2 in evo gnome-3-10 (3.10.2+)