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 669219 - Deadlock in offline/online
Deadlock in offline/online
Status: RESOLVED DUPLICATE of bug 608327
Product: evolution-mapi
Classification: Applications
Component: Mail
3.3.x
Other Linux
: Normal normal
: ---
Assigned To: evolution-mapi-maint
evolution-mapi-maint
Depends on:
Blocks:
 
 
Reported: 2012-02-02 04:25 UTC by Akhil Laddha
Modified: 2012-02-10 10:22 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Akhil Laddha 2012-02-02 04:25:36 UTC
Evolution 3.3.5

1. clicked on send/receive
2. network went down, evolution showed message about network outage
3. network came back, it was trying to fetch messages and status bar showed that evolution is online
 
can be a duplicate of bug 669108

gdb trace of evolution

Thread 2 (Thread 0xb5e42b70 (LWP 29130))

  • #0 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 read
    at /usr/include/bits/unistd.h line 45
  • #2 unix_signal_helper_thread
    at gmain.c line 4551
  • #3 g_thread_create_proxy
    at gthread.c line 1962
  • #4 start_thread
    at pthread_create.c line 301
  • #5 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Thread 1 (Thread 0xb611d890 (LWP 29127))

  • #0 __GI___poll
    at ../sysdeps/unix/sysv/linux/poll.c line 87
  • #1 ??
    from /usr/lib/libxcb.so.1
  • #2 ??
    from /usr/lib/libxcb.so.1
  • #3 xcb_writev
    from /usr/lib/libxcb.so.1
  • #4 _XSend
    from /usr/lib/libX11.so.6
  • #5 XRenderCompositeTrapezoids
    from /usr/lib/libXrender.so.1
  • #6 ??
    from /usr/lib/libcairo.so.2
  • #7 ??
    from /usr/lib/libcairo.so.2
  • #8 ??
    from /usr/lib/libcairo.so.2
  • #9 ??
    from /usr/lib/libcairo.so.2
  • #10 ??
    from /usr/lib/libcairo.so.2
  • #11 ??
    from /usr/lib/libcairo.so.2
  • #12 ??
    from /usr/lib/libcairo.so.2
  • #13 ??
    from /usr/lib/libcairo.so.2
  • #14 ??
    from /usr/lib/libcairo.so.2
  • #15 ??
    from /usr/lib/libcairo.so.2
  • #16 ??
    from /usr/lib/libcairo.so.2
  • #17 cairo_stroke_preserve
    from /usr/lib/libcairo.so.2
  • #18 cairo_stroke
    from /usr/lib/libcairo.so.2
  • #19 _gtk_theming_engine_paint_spinner
    at gtkthemingengine.c line 2730
  • #20 render_spinner
    at gtkthemingengine.c line 2773
  • #21 gtk_theming_engine_render_activity
    at gtkthemingengine.c line 2791
  • #22 ??
    from /usr/lib/gtk-3.0/3.0.0/theming-engines/libadwaita.so
  • #23 gtk_render_activity
    at gtkstylecontext.c line 4240
  • #24 gtk_spinner_draw
    at gtkspinner.c line 211
  • #25 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #26 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #27 g_type_class_meta_marshal
    at gclosure.c line 885
  • #28 g_closure_invoke
    at gclosure.c line 774
  • #29 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #30 g_signal_emit_valist
    at gsignal.c line 3013
  • #31 g_signal_emit
    at gsignal.c line 3060
  • #32 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #33 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #34 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #35 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #36 gtk_box_forall
    at gtkbox.c line 1856
  • #37 gtk_container_forall
    at gtkcontainer.c line 2014
  • #38 gtk_container_draw
    at gtkcontainer.c line 3206
  • #39 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #40 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #41 g_type_class_meta_marshal
    at gclosure.c line 885
  • #42 g_closure_invoke
  • #43 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #44 g_signal_emit_valist
    at gsignal.c line 3013
  • #45 g_signal_emit
    at gsignal.c line 3060
  • #46 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #47 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #48 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #49 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #50 gtk_frame_forall
    at gtkframe.c line 374
  • #51 gtk_container_forall
    at gtkcontainer.c line 2014
  • #52 gtk_container_draw
    at gtkcontainer.c line 3206
  • #53 gtk_frame_draw
    at gtkframe.c line 705
  • #54 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #55 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #56 g_type_class_meta_marshal
  • #57 g_closure_invoke
    at gclosure.c line 774
  • #58 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #59 g_signal_emit_valist
    at gsignal.c line 3013
  • #60 g_signal_emit
    at gsignal.c line 3060
  • #61 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #62 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #63 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #64 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #65 gtk_box_forall
    at gtkbox.c line 1856
  • #66 gtk_container_forall
    at gtkcontainer.c line 2014
  • #67 gtk_container_draw
    at gtkcontainer.c line 3206
  • #68 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #69 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #70 g_type_class_meta_marshal
    at gclosure.c line 885
  • #71 g_closure_invoke
    at gclosure.c line 774
  • #72 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #73 g_signal_emit_valist
    at gsignal.c line 3013
  • #74 g_signal_emit
    at gsignal.c line 3060
  • #75 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #76 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #77 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #78 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #79 gtk_box_forall
    at gtkbox.c line 1856
  • #80 gtk_container_forall
    at gtkcontainer.c line 2014
  • #81 gtk_container_draw
    at gtkcontainer.c line 3206
  • #82 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #83 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #84 g_type_class_meta_marshal
    at gclosure.c line 885
  • #85 g_closure_invoke
    at gclosure.c line 774
  • #86 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #87 g_signal_emit_valist
    at gsignal.c line 3013
  • #88 g_signal_emit
    at gsignal.c line 3060
  • #89 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #90 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #91 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #92 gtk_notebook_draw
    at gtknotebook.c line 2547
  • #93 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #94 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #95 g_type_class_meta_marshal
    at gclosure.c line 885
  • #96 g_closure_invoke
    at gclosure.c line 774
  • #97 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #98 g_signal_emit_valist
    at gsignal.c line 3013
  • #99 g_signal_emit
    at gsignal.c line 3060
  • #100 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #101 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #102 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #103 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #104 gtk_box_forall
    at gtkbox.c line 1856
  • #105 gtk_container_forall
    at gtkcontainer.c line 2014
  • #106 gtk_container_draw
    at gtkcontainer.c line 3206
  • #107 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #108 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #109 g_type_class_meta_marshal
    at gclosure.c line 885
  • #110 g_closure_invoke
    at gclosure.c line 774
  • #111 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #112 g_signal_emit_valist
    at gsignal.c line 3013
  • #113 g_signal_emit
    at gsignal.c line 3060
  • #114 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #115 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #116 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #117 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #118 gtk_box_forall
    at gtkbox.c line 1856
  • #119 gtk_container_forall
    at gtkcontainer.c line 2014
  • #120 gtk_container_draw
    at gtkcontainer.c line 3206
  • #121 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #122 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #123 g_type_class_meta_marshal
    at gclosure.c line 885
  • #124 g_closure_invoke
    at gclosure.c line 774
  • #125 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #126 g_signal_emit_valist
    at gsignal.c line 3013
  • #127 g_signal_emit
    at gsignal.c line 3060
  • #128 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #129 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #130 gtk_container_propagate_draw
    at gtkcontainer.c line 3342
  • #131 gtk_container_draw_child
    at gtkcontainer.c line 3189
  • #132 gtk_bin_forall
    at gtkbin.c line 172
  • #133 gtk_container_forall
    at gtkcontainer.c line 2014
  • #134 gtk_container_draw
    at gtkcontainer.c line 3206
  • #135 gtk_window_draw
    at gtkwindow.c line 7457
  • #136 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 85
  • #137 gtk_widget_draw_marshaller
    at gtkwidget.c line 819
  • #138 g_type_class_meta_marshal
  • #139 g_closure_invoke
    at gclosure.c line 774
  • #140 signal_emit_unlocked_R
    at gsignal.c line 3310
  • #141 g_signal_emit_valist
    at gsignal.c line 3013
  • #142 g_signal_emit
    at gsignal.c line 3060
  • #143 _gtk_widget_draw_internal
    at gtkwidget.c line 5722
  • #144 _gtk_widget_draw_internal
    at gtkwidget.c line 5698
  • #145 gtk_widget_send_expose
    at gtkwidget.c line 5969
  • #146 gtk_main_do_event
    at gtkmain.c line 1801
  • #147 _gdk_event_emit
    at gdkevents.c line 71
  • #148 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3857
  • #149 gdk_x11_window_process_updates_recurse
    at gdkwindow-x11.c line 4672
  • #150 gdk_window_process_updates_internal
    at gdkwindow.c line 4013
  • #151 gdk_window_process_all_updates
    at gdkwindow.c line 4144
  • #152 gdk_window_update_idle
    at gdkwindow.c line 3747
  • #153 gdk_threads_dispatch
    at gdk.c line 754
  • #154 g_idle_dispatch
    at gmain.c line 4785
  • #155 g_main_dispatch
    at gmain.c line 2425
  • #156 g_main_context_dispatch
    at gmain.c line 2995
  • #157 g_main_context_iterate
    at gmain.c line 3073
  • #158 g_main_loop_run
    at gmain.c line 3281
  • #159 gtk_main
    at gtkmain.c line 1362
  • #160 main
    at main.c line 673

Comment 1 Milan Crha 2012-02-03 13:44:53 UTC
It's waiting on your server response, inside the Unsubscribe call. If you are really offline, then it'll recover after connection timeouts, then it'll get stuck on Logoff call, if it'll not crash as in bug #669308. I'm not sure if there is anything to be done with this. Maybe the disconnect is not needed to call the Unsubscribe, as the Logoff should close connections to the server anyway, but it'll get stuck on the above-mentioned Logoff too.
Comment 2 Milan Crha 2012-02-10 10:22:18 UTC
As we spoke on IRC, after change from bug #669308, this is stuck in the Logoff() (see the below backtrace). You also mentioned that it didn't recover after 5 minutes of waiting, which seems like there is either no default timeout limit on tevent or it's too high. We may cope with this within bug #608327, as it's closely related.

Thread 27 (Thread 0xa699cb70 (LWP 7471))

  • #0 epoll_wait
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 epoll_event_loop
    at ../tevent_standard.c line 281
  • #2 std_event_loop_once
    at ../tevent_standard.c line 565
  • #3 _tevent_loop_once
    at ../tevent.c line 505
  • #4 tevent_req_poll
    at ../tevent_req.c line 210
  • #5 dcerpc_binding_handle_call
    at ../librpc/rpc/binding_handle.c line 542
  • #6 dcerpc_EcDoRpc_r
    at gen_ndr/ndr_exchange_c.c line 12090
  • #7 emsmdb_transaction
    at libmapi/emsmdb.c line 441
  • #8 emsmdb_transaction_wrapper
    at libmapi/emsmdb.c line 593
  • #9 Release
    at libmapi/IUnknown.c line 149
  • #10 mapi_object_release
    at libmapi/mapi_object.c line 97
  • #11 Logoff
    at libmapi/IMSProvider.c line 349
  • #12 disconnect
    at e-mapi-connection.c line 282
  • #13 e_mapi_connection_finalize
    at e-mapi-connection.c line 390
  • #14 g_object_unref
    at gobject.c line 2746
  • #15 mapi_disconnect_sync
    at camel-mapi-store.c line 2138
  • #16 camel_service_disconnect_sync
    at camel-service.c line 1186
  • #17 camel_offline_store_set_online_sync
    at camel-offline-store.c line 174
  • #18 mail_store_go_offline_thread
    at e-mail-store-utils.c line 188
  • #19 run_in_thread
    at gsimpleasyncresult.c line 843
  • #20 io_job_thread
    at gioscheduler.c line 180
  • #21 g_thread_pool_thread_proxy
    at gthreadpool.c line 319
  • #22 g_thread_create_proxy
    at gthread.c line 1962
  • #23 start_thread
    at pthread_create.c line 301
  • #24 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

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