2011-03-30 15:55:36 |
Steve Langasek |
bug |
|
|
added bug |
2011-03-30 18:08:57 |
James Westby |
bug task added |
|
launchpadlib |
|
2011-04-13 14:42:20 |
Curtis Hovey |
launchpadlib: status |
New |
Triaged |
|
2011-04-13 14:42:23 |
Curtis Hovey |
launchpadlib: importance |
Undecided |
Critical |
|
2011-04-19 02:12:28 |
Martin Pool |
python-launchpadlib (Ubuntu): status |
New |
Triaged |
|
2011-04-19 02:12:30 |
Martin Pool |
python-launchpadlib (Ubuntu): importance |
Undecided |
High |
|
2011-04-19 17:05:16 |
Brian Murray |
nominated for series |
|
Ubuntu Natty |
|
2011-04-19 17:05:16 |
Brian Murray |
bug task added |
|
python-launchpadlib (Ubuntu Natty) |
|
2011-04-19 17:05:39 |
Brian Murray |
bug |
|
|
added subscriber Brian Murray |
2011-05-20 19:46:49 |
Fabrice Coutadeur |
bug |
|
|
added subscriber Fabrice Coutadeur |
2011-05-25 23:57:21 |
Mjumbe Wawatu Ukweli |
bug |
|
|
added subscriber Mjumbe Wawatu Ukweli |
2011-06-08 06:59:20 |
Martin Pool |
summary |
system-based authorization doesn't store useful credentials in gnome-keyring |
system-based authorization broken in gnome-keyring: NoOptionError: No option 'consumer_key' in section: '1' |
|
2011-06-09 04:21:35 |
Martin Pool |
description |
Binary package hint: python-launchpadlib
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: python-launchpadlib 1.9.7-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.38-7.39-generic 2.6.38
Uname: Linux 2.6.38-7-generic x86_64
Architecture: amd64
Date: Wed Mar 30 08:33:50 2011
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
ProcEnviron:
LANGUAGE=en_US:en
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: python-launchpadlib
UpgradeStatus: Upgraded to natty on 2011-03-24 (5 days ago) |
Binary package hint: python-launchpadlib
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-10-17 17:41:34 |
Stefano Rivera |
bug |
|
|
added subscriber Stefano Rivera |
2011-10-26 19:50:26 |
Francis J. Lacoste |
tags |
amd64 apport-bug natty |
amd64 apport-bug escalated natty |
|
2011-11-08 15:48:00 |
Brad Crittenden |
launchpadlib: status |
Triaged |
In Progress |
|
2011-11-08 15:52:07 |
Brad Crittenden |
launchpadlib: assignee |
|
Brad Crittenden (bac) |
|
2011-11-17 16:13:23 |
Launchpad Janitor |
branch linked |
|
lp:~bac/launchpadlib/bug-745801 |
|
2011-11-22 15:06:18 |
Brad Crittenden |
launchpadlib: status |
In Progress |
Fix Committed |
|
2011-12-07 19:20:24 |
Brad Crittenden |
launchpadlib: status |
Fix Committed |
Fix Released |
|
2011-12-08 23:20:56 |
Bryce Harrington |
nominated for series |
|
Ubuntu Oneiric |
|
2011-12-08 23:20:56 |
Bryce Harrington |
bug task added |
|
python-launchpadlib (Ubuntu Oneiric) |
|
2011-12-08 23:21:24 |
Bryce Harrington |
python-launchpadlib (Ubuntu Oneiric): importance |
Undecided |
High |
|
2011-12-08 23:21:24 |
Bryce Harrington |
python-launchpadlib (Ubuntu Oneiric): status |
New |
Triaged |
|
2011-12-08 23:29:58 |
Bryce Harrington |
description |
Binary package hint: python-launchpadlib
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
[Development Fix]
[Stable Fix]
[Test Case]
[Regression Potential]
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-08 23:50:26 |
Bryce Harrington |
description |
[Impact]
[Development Fix]
[Stable Fix]
[Test Case]
[Regression Potential]
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
(*TODO*: detailed instructions how to reproduce the bug. These should allow someone who is not familiar with the affected package to reproduce the bug and verify that the updated package fixes the problem.)
[Regression Potential]
(*TODO*: A discussion of likelihood and potential severity of regressions and how users could get inadvertently affected goes here. )
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-08 23:57:00 |
Bryce Harrington |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
(*TODO*: detailed instructions how to reproduce the bug. These should allow someone who is not familiar with the affected package to reproduce the bug and verify that the updated package fixes the problem.)
[Regression Potential]
(*TODO*: A discussion of likelihood and potential severity of regressions and how users could get inadvertently affected goes here. )
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
(*TODO*: detailed instructions how to reproduce the bug. These should allow someone who is not familiar with the affected package to reproduce the bug and verify that the updated package fixes the problem.)
[Regression Potential]
(*TODO*: A discussion of likelihood and potential severity of regressions and how users could get inadvertently affected goes here. )
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-09 23:08:53 |
Bryce Harrington |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
(*TODO*: detailed instructions how to reproduce the bug. These should allow someone who is not familiar with the affected package to reproduce the bug and verify that the updated package fixes the problem.)
[Regression Potential]
(*TODO*: A discussion of likelihood and potential severity of regressions and how users could get inadvertently affected goes here. )
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-09 23:09:46 |
Bryce Harrington |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue (and another related bug involving unicode data) by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-09 23:14:19 |
Brad Crittenden |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue (and another related bug involving unicode data) by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring. For example, run 'lp-shell' and after authorization examine lp.me.
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-09 23:14:30 |
Bryce Harrington |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2011-12-09 23:14:37 |
Bryce Harrington |
python-launchpadlib (Ubuntu Natty): status |
Triaged |
In Progress |
|
2011-12-09 23:14:39 |
Bryce Harrington |
python-launchpadlib (Ubuntu Oneiric): status |
Triaged |
In Progress |
|
2011-12-09 23:14:44 |
Bryce Harrington |
python-launchpadlib (Ubuntu Natty): assignee |
|
Bryce Harrington (bryce) |
|
2011-12-09 23:14:47 |
Bryce Harrington |
python-launchpadlib (Ubuntu Oneiric): assignee |
|
Bryce Harrington (bryce) |
|
2011-12-09 23:15:43 |
Bryce Harrington |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring. For example, run 'lp-shell' and after authorization examine lp.me.
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. A "ConfigParser.NoOptionError" will be printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue (and another related bug involving unicode data) by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. Affected users will see a "ConfigParser.NoOptionError" printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-09 23:22:54 |
Brad Crittenden |
description |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue (and another related bug involving unicode data) by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Run a launchpadlib client that uses the keyring
2. [Optional] Open the key in seahorse, (and optionally ensure there is a newline) then close seahorse
3. Run the same launchlib client a second time
4. Affected users will see a "ConfigParser.NoOptionError" printed
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
[Impact]
Some users have reported problems with corrupted keyrings, both in Gnome and KDE, when newlines are included in the password. This makes all launchpadlib-based apps unusable for affected users.
The corruption occurs because launchpadlib attempts to store a multi-line value in the keyring, but the keyring service appears to assume values are single-lined, so chokes when it encounters launchpadlib's entries.
[Workaround]
Delete the keyring (e.g. via 'seahorse') prior to running a launchpadlib-based script.
[Development Fix]
Upstream version 1.9.12 resolves the issue by base64 encoding the serialized value:
- Properly handle Unicode passwords if returned by the keyring.
- Base 64 encode serialized credentials before putting in keyring/wallet.
[Stable Fix]
For the SRU to natty and oneiric, it is proposed to cherrypick the encoding change to credentials.py and its associated test code in test_credential_store.py.
[Test Case]
1. Before installing the new package, use a launchpadlib client to create a key entry in your keyring. It will be called 'network password'. For example, run 'lp-shell' and after authorization examine lp.me.
2. Open the keyring with seahorse and examine the password. It should be plaintext and have 'consumer_key' as one of the first entries. Ensure under 'details' it lists the URL for the Launchpad system you accessed above (i.e., product, staging, or qastaging)
3. Install the updated package.
4. Run the same launchpadlib client. Ensure that authorization is not required, demonstrating that the stored credentials were used.
5. Open seahorse and delete the entry for 'network password'.
6. Run the client again and reauthorize.
7. Examine the key entry in seahorse. This time it should start with '<B64>' and the rest should be base 64 encoded.
8. Finally run the client again and ensure authorization is not required.
[Regression Potential]
Low/none. When there is a corrupted key ring entry, this just reauthorizes and overwrite the old entry, same as if it had expired.
[Original Report]
Running lp:svammel to do a dry run mass bugfiling against LP, I get prompted to authorize my system to connect to launchpad, which is neat. But on a subsequent invocation of the tool, it fails with:
Traceback (most recent call last):
File "file-failures.py", line 50, in <module>
init(args.serviceroot, 'testing', '~/.launchpadlib/cache/')
File "/home/vorlon/devel/linaro/svammel/config.py", line 96, in init
set_launchpad(service_root, appid, cachedir)
File "/home/vorlon/devel/linaro/svammel/config.py", line 72, in set_launchpad
lp = Launchpad.login_with(appid, root, cachedir)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 538, in login_with
credential_save_failed, version)
File "/usr/lib/pymodules/python2.7/launchpadlib/launchpad.py", line 341, in _authorize_token_and_login
authorization_engine.unique_consumer_id)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 273, in load
return self.do_load(unique_key)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 322, in do_load
return Credentials.from_string(credential_string)
File "/usr/lib/pymodules/python2.7/launchpadlib/credentials.py", line 89, in from_string
credentials.load(StringIO(value))
File "/usr/lib/python2.7/dist-packages/lazr/restfulclient/authorize/oauth.py", line 165, in load
CREDENTIALS_FILE_VERSION, 'consumer_key')
File "/usr/lib/python2.7/ConfigParser.py", line 610, in get
raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'consumer_key' in section: '1'
At James Westby's suggestion, I had a peek inside gnome-keyring with seahorse and found this as the 'password' value of the 'network password' token:
[1]
Presumably there should be a real password here instead. :)
People experiencing this problem can work around it by opening their gnome keyring, and deleting the broken password. |
|
2011-12-13 23:49:56 |
Clint Byrum |
python-launchpadlib (Ubuntu Oneiric): status |
In Progress |
Fix Committed |
|
2011-12-13 23:49:59 |
Clint Byrum |
bug |
|
|
added subscriber SRU Verification |
2011-12-13 23:50:02 |
Clint Byrum |
tags |
amd64 apport-bug escalated natty |
amd64 apport-bug escalated natty verification-needed |
|
2011-12-13 23:55:01 |
Clint Byrum |
python-launchpadlib (Ubuntu Natty): status |
In Progress |
Fix Committed |
|
2011-12-14 00:10:27 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/oneiric-proposed/python-launchpadlib |
|
2011-12-14 00:10:36 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/natty-proposed/python-launchpadlib |
|
2011-12-14 15:40:21 |
Brad Crittenden |
tags |
amd64 apport-bug escalated natty verification-needed |
amd64 apport-bug escalated natty verification-done |
|
2012-01-24 05:43:34 |
Launchpad Janitor |
python-launchpadlib (Ubuntu Natty): status |
Fix Committed |
Fix Released |
|
2012-01-24 05:44:03 |
Launchpad Janitor |
python-launchpadlib (Ubuntu Oneiric): status |
Fix Committed |
Fix Released |
|
2012-05-03 15:02:13 |
Stefano Rivera |
python-launchpadlib (Ubuntu): status |
Triaged |
Fix Released |
|