GNOME Bugzilla – Bug 666200
Wizard stays forever in the finishing page
Last modified: 2012-01-18 12:14:14 UTC
Device seems to be properly configured on the bluez side but no callback is executed on the gnome-bluetooth side. I traced the cause to "table" being NULL in lib/bluetooth-client.c in bluetooth_client_connect_service() at line 1768: if (connect && table == NULL) { if (proxy != NULL) g_object_unref (proxy); g_simple_async_result_set_op_res_gboolean (simple, FALSE); g_object_unref (simple); return; But I don't know why some code paths return without executing a callback.
Created attachment 203686 [details] [review] lib: Add missing calls to result complete Otherwise we never finish connecting or disconnecting on failure.
Feel free to commit this patch if this fixes the bug for you.
No visible changes. IIUIC the GUI will move to another page only if connect_callback or disconnect_callback are executed which isn't the case in the "goto fail" code path. I'm not sure that my table == NULL case should be treated as a failure because even if the wizard didn't finish I can see the phone in bluetooth-applet and use bluetooth-sendto; browsing fails though it may be unrelated as I never used it before on this machine.
(In reply to comment #3) > No visible changes. > IIUIC the GUI will move to another page only if connect_callback or > disconnect_callback are executed which isn't the case in the "goto fail" code > path. No. It will be executed when the GIO async call returns, so when g_simple_async_result_complete() or g_simple_async_result_complete_in_idle() is called. > I'm not sure that my table == NULL case should be treated as a failure because > even if the wizard didn't finish I can see the phone in bluetooth-applet and > use bluetooth-sendto; browsing fails though it may be unrelated as I never used > it before on this machine. s/fail/bail/ We just need to exit early because we have nothing to do... But that's not enough. The Connect() function doesn't exist on org.bluez.Device, and the wrong function is called to finish the disconnect if we're disconnecting each service. Some patches here, but need to finish up.
Created attachment 205479 [details] [review] lib: Call correct function to Connect() to service
Comment on attachment 205479 [details] [review] lib: Call correct function to Connect() to service Missing the correct _finish() calls.
commit 7eccac1c3b34573eae02102b74b6c38069d8df9d Author: Bastien Nocera <hadess@hadess.net> Date: Tue Jan 17 19:46:06 2012 +0000 lib: Call correct function to Connect() to service And use correct function for the 2 variants of disconnect calls. https://bugzilla.gnome.org/show_bug.cgi?id=666200