Activity log for bug #745801

Date Who What changed Old value New value Message
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