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 711837 - Add goa service/sign in dialog hangs on cancel
Add goa service/sign in dialog hangs on cancel
Status: RESOLVED INVALID
Product: gnome-initial-setup
Classification: Applications
Component: general
3.10.x
Other Linux
: Normal normal
: ---
Assigned To: GNOME Initial Setup maintainer(s)
GNOME Initial Setup maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2013-11-11 12:48 UTC by Michael Wood
Modified: 2013-11-25 11:50 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Michael Wood 2013-11-11 12:48:59 UTC
If you hit cancel before the page for sign in is fully loaded you get stuck seemingly forever waiting for g_io_stream_close (a blocking call).


  • #0 poll
    from /lib/x86_64-linux-gnu/libc.so.6
  • #1 ??
    from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
  • #2 ??
    from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
  • #3 g_io_stream_close
    at giostream.c line 402
  • #4 disconnect_internal
    at soup-socket.c line 117
  • #5 soup_socket_disconnect
    at soup-socket.c line 1246
  • #6 soup_connection_disconnect
    at soup-connection.c line 769
  • #7 soup_connection_set_state
    at soup-connection.c line 850
  • #8 soup_session_unqueue_item
    at soup-session.c line 1426
  • #9 soup_session_process_queue_item
    at soup-session.c line 1870
  • #10 soup_session_async_cancel_message
    at soup-session-async.c line 130
  • #11 soup_session_cancel_message
    at soup-session.c line 2284
  • #12 WebCore::ResourceLoader::cancel(WebCore::ResourceError const&)
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #13 WebCore::DocumentLoader::cancelMainResourceLoad(WebCore::ResourceError const&)
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #14 WebCore::DocumentLoader::stopLoading()
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #15 WebCore::FrameLoader::stopAllLoaders(WebCore::ClearProvisionalItemPolicy)
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #16 WebCore::FrameLoader::stopForUserCancel(bool)
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #17 webkit_web_view_dispose(_GObject*)
    from /home/michael/dev/tizen/pc/install/lib64/libwebkitgtk-3.0.so.0
  • #18 g_object_run_dispose


Getting libsoup to use the async version stops this from blocking.

diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index baa9290..ddca801 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -114,7 +114,8 @@ disconnect_internal (SoupSocket *sock, gboolean close)
 
        g_clear_object (&priv->gsock);
        if (priv->conn && close)
-               g_io_stream_close (priv->conn, NULL, NULL);
+               g_io_stream_close_async (priv->conn, 0,
+                                         NULL, NULL, NULL);
 
        if (priv->read_src) {
                g_source_destroy (priv->read_src);
Comment 1 Michael Wood 2013-11-25 11:50:59 UTC
Not a g-i-s bug (Fixed in libsoup 2.44.2 / bug 711842 )