ubuntuone-login crashed with ValueError in call_async(): Unable to guess signature from an empty dict

Bug #711162 reported by Id2ndR
566
This bug affects 112 people
Affects Status Importance Assigned to Milestone
Ubuntu One Client
Status tracked in Trunk
Stable-3-0
Fix Released
Undecided
dobey
Stable-4-0
Fix Released
Undecided
Unassigned
Trunk
Fix Released
Undecided
dobey
dbus-python (Ubuntu)
Precise
Invalid
Undecided
Unassigned
Quantal
Invalid
Medium
Unassigned
ubuntuone-client (Ubuntu)
Fix Released
High
Unassigned
Precise
Fix Released
Undecided
Unassigned
Quantal
Fix Released
High
Unassigned

Bug Description

This error happens because Ubuntu SSO cannot be contacted by ubuntuone-login process. Eventually the latter gives up and throws a DBus error.

If you are experiencing this issue please check whether you have a custom python installation used by default:

which python

Expected output: /usr/bin/python

If you have e.g. another python binary in /usr/local/bin and `which python` shows it then ubuntu-sso-client will fail to start leading to this issue.

If you don't have another python installation please leave a comment with the output of:

/usr/lib/ubuntu-sso-client/ubuntu-sso-login-qt --app_name test

Related branches

Revision history for this message
Id2ndR (id2ndr) wrote :
tags: removed: need-duplicate-check
tags: added: bugpattern-needed
Revision history for this message
Sebastien Bacher (seb128) wrote :

setting to high since it seems quite some users run into it

Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Ubuntu One Desktop+ team (ubuntuone-desktop+)
visibility: private → public
Changed in ubuntuone-client (Ubuntu):
importance: Undecided → High
igi (igor-cali)
tags: added: i386
Revision history for this message
Swâmi Petaramesh (swami-petaramesh) wrote :

Get a UbuntOne crash at each and every login since upgrading Maverick => Natty beta.

Happens on all 3 different machines out of 3 machines on which I have tried.

Revision history for this message
dobey (dobey) wrote :

The traceback appears to be entirely inside dbus-python so moving to there.

affects: ubuntuone-client (Ubuntu) → dbus-python (Ubuntu)
Changed in dbus-python (Ubuntu):
assignee: Ubuntu One Desktop+ team (ubuntuone-desktop+) → nobody
Revision history for this message
Marivaldo Sena Lima Júnior (marivaldosenalimajunior) wrote :

I tried to use Ubuntu One, suddenly the error appeared.

Revision history for this message
matti salminen (salmiset) wrote :

This seems to be back as it occurred right after upgrading to 11.10Alpha of July 10.

Changed in dbus-python (Ubuntu):
status: New → Confirmed
tags: removed: bugpattern-needed
tags: added: bugpattern-written
Revision history for this message
riddle (riddlepl) wrote :

11.10 beta. I get this error during logining in.

Revision history for this message
Baskak (antoni-beksiak) wrote :

while attempting to register tomboy for sync

Revision history for this message
martin (nurspam) wrote :

I get this bug with 12.04 right after login.

Revision history for this message
psypher (psypher246) wrote :

I just updated 12.04 and UbuntuOne crashed on login to the desktop and brought me here. This is regression, U1 has been working fine on precise so far. Also cannot log in to U1 client: red writing on the client states: "There was a problem while retrieving the crede" and then cuts off. Unable run u1sdtool to stop and start the daemon. Going to log a separate bug about that issue.

So U1 is completely dead

Revision history for this message
vikash (vika.sh) wrote :

I got the same bug on login - after today's upgrade.

Revision history for this message
Nest (nestor15) wrote :

Still occurs.

Revision history for this message
psypher (psypher246) wrote :

Ditto, new U1 client now states "File Sync error. (auth failed (AUTH_FAILED))

My user details are present and I have not changed my password

psypher (psypher246)
affects: dbus-python (Ubuntu) → ubuntuone-client (Ubuntu)
Revision history for this message
psypher (psypher246) wrote :

no one has been attending to this as it was marked incorrectly. Changed to ubuntuone

Revision history for this message
dobey (dobey) wrote :

psypher, what makes you think this was marked incorrectly? The traceback from the original report is all entirely in dbus-python. And your error does not sound at all anything like this. Why did you move it back to u1-client?

Revision history for this message
Thomas Kluyver (takluyver) wrote :

Marked as affecting both packages until someone works out for certain which is at fault.

I've also seen it at login on a freshly updated 12.04 system (upgraded from 11.10).

Revision history for this message
Thomas Kluyver (takluyver) wrote :

This is the error details I get when trying to start the U1 client. It's similar, but note that this traceback *does* go through ubuntuone-client.

CredentialsError
DBusException(dbus.String(u'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/dbus/service.py", line 707, in _message_cb\n retval = candidate_method(self, *args, **keywords)\n File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/platform/credentials/linux.py", line 172, in find_credentials\n reply_handler=reply_handler, error_handler=error_handler)\n File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 137, in __call__\n **keywords)\n File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 584, in call_async\n message.append(signature=signature, *args)\nValueError: Unable to guess signature from an empty dict\n'),)

Here's the u1 frame pulled out:

  File "/usr/lib/python2.7/dist-packages/ubuntuone-client/ubuntuone/platform/credentials/linux.py", line 172, in find_credentials
    reply_handler=reply_handler, error_handler=error_handler)

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in dbus-python (Ubuntu):
status: New → Confirmed
Revision history for this message
psypher (psypher246) wrote :

@Rodney, I was told by the guys one the IRC channel that it was marked incorrectly as dbus and hence no-one from u1 saw it and wasn't working on it

Changed in dbus-python (Ubuntu):
status: Confirmed → Opinion
Revision history for this message
dobey (dobey) wrote :

Zakaria, can you please explain why you changed this from Confirmed to Opinion in dbus-python?

Revision history for this message
samuel (sam-ventimiglia) wrote :

amen

dobey (dobey)
Changed in dbus-python (Ubuntu):
status: Opinion → Confirmed
Revision history for this message
James Henstridge (jamesh) wrote :

Presumably this happens if dbus-python doesn't manage to introspect the credentials interface, so it doesn't know how to marshal the empty dictionary.

I'm not sure why this would happen for some people and not others, but we could probably work around it by passing dbus.Dictionary({}, signature='ss') to find_credentials() instead (or whatever the signature is meant to be).

Revision history for this message
Wim Boucquaert (wim-boucquaert) wrote :

Hello,

any update on a fix for this bug?

Regards

Wim

Revision history for this message
Marty Ballard (marty331) wrote :

Adding ubuntuone-ubuntu-syncdaemon-diag.sh results as requested.

Revision history for this message
Marty Ballard (marty331) wrote :

As instructed I ran:
/usr/lib/ubuntu-sso-client/ubuntu-sso-login-qt --app_name Test

And this produced the following output:

Traceback (most recent call last):
  File "/usr/lib/ubuntu-sso-client/ubuntu-sso-login-qt", line 40, in <module>
    from ubuntu_sso.qt.main import main
ImportError: No module named ubuntu_sso.qt.main

Changed in dbus-python (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Marty Ballard (marty331) wrote :

Was asked to run three commands, output is attached.

Revision history for this message
Roman Yepishev (rye) wrote :

Those who experience this issue - do you happen to have a custom Python installation?

What is the output of `which python` ?

Revision history for this message
Roman Yepishev (rye) wrote :

A follow up to the previous message.

In case you do have a custom Python installation then this is what breaks ubuntu-sso-client since the packaged version uses /usr/bin/env python which in turn causes your custom interpreter to be started which may not know about ubuntuone modules at all. The task to switch to /usr/bin/python interpreter for various Ubuntu One-related applications is LP:984089.

The comment in #25 is an example of custom python installations that gets used by default.

Roman Yepishev (rye)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntuone-client - 3.99.0-0ubuntu1

---------------
ubuntuone-client (3.99.0-0ubuntu1) quantal; urgency=low

  * New upstream release.
    - Use dbus.Dictionary to pass empty dicts. (LP: #711162)
    - Ignore IN_CLOSE_WRITE for directories. (LP: #872894)
    - Validate SSL certificates better. (LP: #882062, LP: #1014654)
    - Ignore .goutputstream temporary flies. (LP: #1012620)
    - Handle failures better in share creation. (LP: #1013180)
    - Re-upload files when server reports empty hash. (LP: #1013401)
  * debian/control:
    - Update some build dependencies in preparation for testing during builds,
      and to allow building on older supported versions of Ubuntu.
  * debian/watch:
    - Update to use stable-4-0 series for Quantal releases.
 -- Rodney Dawes <email address hidden> Tue, 19 Jun 2012 16:58:05 -0400

Changed in ubuntuone-client (Ubuntu Quantal):
status: Confirmed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Id2ndR, or anyone else affected,

Accepted ubuntuone-client into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/ubuntuone-client/3.0.2-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in ubuntuone-client (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
dobey (dobey)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntuone-client - 3.0.2-0ubuntu1

---------------
ubuntuone-client (3.0.2-0ubuntu1) precise-proposed; urgency=low

  * New upstream release. (LP: #1018991)
    - Wrap empty dicts with dbus.Dictionary. (LP: #711162)
    - Ignore IN_CLOSE_WRITE for directories. (LP: #872894)
    - Ignore .goutputstream temporary flies. (LP: #1012620)
    - Handle failures better in share creation. (LP: #1013180)
  * debian/copyright:
    - Remove comma in list of files for dep5 copyright format.
  * 00_bzr1259_lp1013401_reupload.patch:
    - Re-upload files when server reports empty hash. (LP: #1013401)
  * debian/patches:
    - Remove upstreamed patches.
 -- Rodney Dawes <email address hidden> Mon, 09 Jul 2012 15:46:44 -0400

Changed in ubuntuone-client (Ubuntu Precise):
status: Fix Committed → Fix Released
ALONSO (rogerio-alonso)
security vulnerability: no → yes
visibility: public → private
dobey (dobey)
security vulnerability: yes → no
visibility: private → public
Revision history for this message
Barry Warsaw (barry) wrote :

I removed the dbus-python bug task because this is a deliberate decision in dbus-python, not a bug. Specifically, this comment in message-append.c sheds some light:

            /* No items, so fail. Or should we guess "a{vv}"? */

I actually think dbus-python is probably doing the right thing by refusing to guess the signature of an empty dictionary. It's probably a bug that the documentation doesn't describe this, and I will file such a documentation bug upstream.

no longer affects: dbus-python (Ubuntu)
Barry Warsaw (barry)
Changed in dbus-python (Ubuntu Precise):
status: New → Invalid
Changed in dbus-python (Ubuntu Quantal):
status: Confirmed → Invalid
Agus (aguz-sandband)
Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Agus (aguz-sandband)
dobey (dobey)
Changed in ubuntuone-client (Ubuntu):
assignee: Agus (aguz-sandband) → nobody
Revision history for this message
Charles C Stevenson (wojtekenson) wrote :

How do I fix this?

CredentialsError
DBusException(dbus.String(u'Process /usr/lib/ubuntu-sso-client/ubuntu-sso-login exited with status 1'),)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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