logging into OAuth accounts that use a separate webkit window (twitter, google) does not create an account (usually)

Bug #1220823 reported by Mike McCracken
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
signon (Ubuntu)
Fix Released
Critical
Alberto Mardegan

Bug Description

Attempting to create a UOA twitter account only works about ten percent of the time for me.

When it fails, the webkit popup window shows its success message, but after dismissing it, no new UOA account shows up in the settings panel list or in account-console.

I'm on saucy, with the following relevant package versions:

% apt-cache policy account-plugin-twitter
account-plugin-twitter:
  Installed: 0.11+13.10.20130802-0ubuntu1
  Candidate: 0.11+13.10.20130802-0ubuntu1
  Version table:
 *** 0.11+13.10.20130802-0ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ saucy/main i386 Packages
        100 /var/lib/dpkg/status

% apt-cache policy signon-plugin-oauth2
signon-plugin-oauth2:
  Installed: 0.17bzr13.04.26+13.10.20130708-0ubuntu1
  Candidate: 0.17bzr13.04.26+13.10.20130708-0ubuntu1
  Version table:
 *** 0.17bzr13.04.26+13.10.20130708-0ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ saucy/main i386 Packages
        100 /var/lib/dpkg/status

% apt-cache policy ubuntu-system-settings-online-accounts
ubuntu-system-settings-online-accounts:
  Installed: 0.2~+13.10.20130808.3-0ubuntu1
  Candidate: 0.2~+13.10.20130808.3-0ubuntu1
  Version table:
 *** 0.2~+13.10.20130808.3-0ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ saucy/universe i386 Packages
        100 /var/lib/dpkg/status

Here is a complete log from one instance of trying and failing to create a twitter account:

% system-settings
unity::action::ActionManager::ActionManager(QObject*):
 Could not determine application identifier. HUD will not work properly.
 Provide your application identifier in $APP_ID environment variable.
virtual void OnlineAccounts::Plugin::registerTypes(const char*) Ubuntu.OnlineAccounts
account-service-model.cpp 275 update
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x8a4c2b0)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x8ae87c8)
file:///usr/share/ubuntu/settings/system/qml-plugins/online-accounts/AccountsPage.qml:59:9: QML Page: Binding loop detected for property "flickable"
account.cpp 60 setObjectHandle Accounts::Account(0x8bb73c8)
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x89fb338)
account-service-model.cpp 275 update
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x8bd0c98)
Authenticating...
../../../../lib/SignOn/connection-manager.cpp 106 setupSocketConnection p2p error: QDBusError("org.freedesktop.DBus.Error.FileNotFound", "Failed to connect to socket /run/user/1000/signond/socket: No such file or directory") 1
../../../../lib/SignOn/connection-manager.cpp 132 init Peer connection unavailable, activating service
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "PendingRegistration" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 172 storeCredentials Storing credentials
../../../../lib/SignOn/connection-manager.cpp 106 setupSocketConnection p2p error: QDBusError("org.freedesktop.DBus.Error.FileNotFound", "Failed to connect to socket /run/user/1000/signond/socket: No such file or directory") 1
../../../../lib/SignOn/connection-manager.cpp 150 init Connected to "qt_default_session_bus"
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Ready" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "NeedsUpdate" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "PendingUpdate" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 443 infoUpdated SERVER INFO UPDATED. NeedsUpdate " 0 "
../../../../lib/SignOn/identityimpl.cpp 346 storeCredentialsReply stored id: 43 old id: 0
../../../../lib/SignOn/identityimpl.cpp 243 queryInfo Querying info.
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "PendingUpdate" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 382 getInfoReply QMap(("ACL", QVariant(QStringList, ("*") ) ) ( "AuthMethods" , QVariant(QDBusArgument, ) ) ( "Caption" , QVariant(QString, "twitter") ) ( "Id" , QVariant(uint, 43) ) ( "Owner" , QVariant(QStringList, () ) ) ( "Realms" , QVariant(QStringList, () ) ) ( "RefCount" , QVariant(int, 0) ) ( "Secret" , QVariant(QString, "") ) ( "Type" , QVariant(int, 0) ) ( "UserName" , QVariant(QString, "") ) ( "UserNameSecret" , QVariant(bool, false) ) ( "Validated" , QVariant(bool, false) ) )
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Ready" SignOn::IdentityImpl(0x8bd2158)
Credentials stored, id: 43
account-service.cpp 384 authenticate QMap()
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "PendingRegistration" SignOn::IdentityImpl(0x8bd3998)
../../../../lib/SignOn/authsessionimpl.cpp 94 initInterface
../../../../lib/SignOn/authsessionimpl.cpp 94 initInterface
../../../../lib/SignOn/identityimpl.cpp 382 getInfoReply QMap(("ACL", QVariant(QStringList, ("*") ) ) ( "AuthMethods" , QVariant(QDBusArgument, ) ) ( "Caption" , QVariant(QString, "twitter") ) ( "Id" , QVariant(uint, 43) ) ( "Owner" , QVariant(QStringList, () ) ) ( "Realms" , QVariant(QStringList, () ) ) ( "RefCount" , QVariant(int, 0) ) ( "Secret" , QVariant(QString, "") ) ( "Type" , QVariant(int, 0) ) ( "UserName" , QVariant(QString, "") ) ( "UserNameSecret" , QVariant(bool, false) ) ( "Validated" , QVariant(bool, false) ) )
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Ready" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Ready" SignOn::IdentityImpl(0x8bd3998)
../../../../lib/SignOn/authsessionimpl.cpp 184 errorSlot QDBusError("org.freedesktop.DBus.Error.NoReply", "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.")
5
"org.freedesktop.DBus.Error.NoReply"
"Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken."
Removing credentials...
../../../../lib/SignOn/identityimpl.cpp 200 remove Removing credentials.
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Removed" SignOn::IdentityImpl(0x8bd3998)
../../../../lib/SignOn/identityimpl.cpp 443 infoUpdated SERVER INFO UPDATED. Removed " 43 "
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Removed" SignOn::IdentityImpl(0x8bd2158)
../../../../lib/SignOn/identityimpl.cpp 443 infoUpdated SERVER INFO UPDATED. Removed " 43 "
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Removed" SignOn::IdentityImpl(0x8bd2158)
====== PLUGIN FINISHED ======

Revision history for this message
Mike McCracken (mikemc) wrote :
Download full text (6.8 KiB)

Because I believe this is the same bug, here's a log from an attempt to create a google account.

NOTE: all of this log text, up to the PLUGIN FINISHED line was printed before I typed anything into the google auth page displayed in the separate webkit window. I paused for about five seconds, and it printed all this in about two seconds.

% system-settings
unity::action::ActionManager::ActionManager(QObject*):
 Could not determine application identifier. HUD will not work properly.
 Provide your application identifier in $APP_ID environment variable.
virtual void OnlineAccounts::Plugin::registerTypes(const char*) Ubuntu.OnlineAccounts
account-service-model.cpp 275 update
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x979bad8)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x979e9b8)
file:///usr/share/ubuntu/settings/system/qml-plugins/online-accounts/AccountsPage.qml:59:9: QML Page: Binding loop detected for property "flickable"
account.cpp 60 setObjectHandle Accounts::Account(0x9869560)
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x986a6e8)
account-service-model.cpp 275 update
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x9886bf0)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x98864c0)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x9884f40)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x9886878)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x98850b0)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x9884828)
accountService role is deprecated, use accountServiceHandle
account-service.cpp 100 setObjectHandle Accounts::AccountService(0x9883a90)
Authenticating...
../../../../lib/SignOn/connection-manager.cpp 106 setupSocketConnection p2p error: QDBusError("org.freedesktop.DBus.Error.FileNotFound", "Failed to connect to socket /run/user/1000/signond/socket: No such file or directory") 1
../../../../lib/SignOn/connection-manager.cpp 132 init Peer connection unavailable, activating service
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "PendingRegistration" SignOn::IdentityImpl(0x9889e78)
../../../../lib/SignOn/identityimpl.cpp 172 storeCredentials Storing credentials
../../../../lib/SignOn/connection-manager.cpp 106 setupSocketConnection p2p error: QDBusError("org.freedesktop.DBus.Error.FileNotFound", "Failed to connect to socket /run/user/1000/signond/socket: No such file or directory") 1
../../../../lib/SignOn/connection-manager.cpp 150 init Connected to "qt_default_session_bus"
../../../../lib/SignOn/identityimpl.cpp 96 updateState Updating state: "Ready" ...

Read more...

summary: - logging into twitter does not create an account (usually)
+ logging into OAuth accounts that use a separate webkit window (twitter,
+ google) does not create an account (usually)
Revision history for this message
Alberto Mardegan (mardy) wrote :

Hi Mike, thanks for the logs; it looks like signond didn't reply (maybe it crashed?). So I'd need the logs from it, too.
In order to collect them, edit /etc/signond.conf and set the LoggingLevel variable to 2. They try authenticating once again, and you'll find the logs in the syslog.
Also, please let me know what version of signond you are using.

That should hopefully reveal what's going wrong.

Changed in account-plugins:
status: New → Incomplete
Revision history for this message
Alberto Mardegan (mardy) wrote :

Mike sent me the logs privately. The problem is in libsignon-qt: it uses the default D-Bus timeout (about 30 seconds) when making D-Bus calls to the daemon, and this is not enough when UI-interactions are needed.

A fix is in progress. :-)

affects: account-plugins → signon
Changed in signon:
importance: Undecided → Critical
status: Incomplete → Confirmed
Revision history for this message
Alberto Mardegan (mardy) wrote :

The fix landed in trunk more than one week ago; I will check why it's not been uploaded to the archive.

affects: signon → signon (Ubuntu)
Changed in signon (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package signon - 8.54+13.10.20130918.1-0ubuntu1

---------------
signon (8.54+13.10.20130918.1-0ubuntu1) saucy; urgency=low

  [ Alberto Mardegan ]
  * New upstream release.
    - lib: set timeout for D-Bus calls to INT_MAX (LP: #1220823)
  * debian/patches/use_apparmor.patch
    - Use the signon-apparmor-extension when available.

  [ Ubuntu daily release ]
  * Automatic snapshot from revision 599
 -- Ubuntu daily release <email address hidden> Wed, 18 Sep 2013 18:07:59 +0000

Changed in signon (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.