RESOLVED FIXED 220736
REGRESSION(r271506): webkit-patch keyring integration is broken on Linux
https://bugs.webkit.org/show_bug.cgi?id=220736
Summary REGRESSION(r271506): webkit-patch keyring integration is broken on Linux
Michael Catanzaro
Reported 2021-01-19 10:18:33 PST
webkit-patch is no longer able to look up my Bugzilla password from the system keyring, instead prompting me to enter my password each time. I don't know why yet... probably related to r271506, but I need to investigate more.
Attachments
Patch (1.64 KB, patch)
2021-01-19 11:23 PST, Michael Catanzaro
no flags
Patch (1.39 KB, patch)
2021-01-19 11:37 PST, Michael Catanzaro
no flags
Patch (1.39 KB, patch)
2021-01-19 11:39 PST, Michael Catanzaro
no flags
Patch (1.39 KB, patch)
2021-01-19 11:39 PST, Michael Catanzaro
no flags
Patch (2.03 KB, patch)
2021-01-19 11:44 PST, Michael Catanzaro
no flags
Michael Catanzaro
Comment 1 2021-01-19 11:12:09 PST
Debug patch: diff --git a/Tools/Scripts/webkitpy/common/net/credentials.py b/Tools/Scripts/webkitpy/common/net/credentials.py index ef98ee15b3c4..c8781e5d5232 100644 --- a/Tools/Scripts/webkitpy/common/net/credentials.py +++ b/Tools/Scripts/webkitpy/common/net/credentials.py @@ -161,8 +161,8 @@ class Credentials(object): if username and not password and self._keyring and use_stored_credentials: try: password = self._keyring.get_password(self.host, username) - except: - pass + except Exception as e: + print('failed to get password from keyring: {}'.format(str(e))) if not password: password = user.prompt_password("%s password for %s: " % (self.host, username)) It prints: $ webkit-patch upload 220736 Total errors found: 0 in 1 files failed to get password from keyring: No recommended backend was available. Install a recommended 3rd party backend package; or, install the keyrings.alt package if you want to use the non-recommended backends. See https://pypi.org/project/keyring for details. bugs.webkit.org password for mcatanzaro@gnome.org: So somehow python-keyring is no longer able to use python-secretservice, which is bad.
Michael Catanzaro
Comment 2 2021-01-19 11:20:32 PST
> So somehow python-keyring is no longer able to use python-secretservice, > which is bad. Er, it's called python-secretstorage. That is required for system keyring integration on Linux. Historically, our autoinstalled python-keyring has been able to use the system copy of python-secretstorage. Maybe the updated version is not? Anyway, if I revert to our previous version of python-keyring, the bug disappears. The bug also goes away if I upgrade to the latest stable version of python-keyring. I'm not sure why exactly version 18.0.1 was selected, but it seems to be a bad version. CC: Jonathan in case this particular version was selected for some important reason.
Michael Catanzaro
Comment 3 2021-01-19 11:23:16 PST
Michael Catanzaro
Comment 4 2021-01-19 11:30:23 PST
Comment on attachment 417891 [details] Patch OK, webkitpy EWS is red. I didn't realize we still support python2. The new version of python-keyring does not support python2. So I need to find an older version that still supports python2, is new enough for the GitHub code to work, and doesn't exhibit this secretstorage bug. Hi Jonathan, can you comment regarding why you upgraded python-keyring? I assume you needed a newer version of the library for... something? What exactly was required? Then I'm not sure what is wrong with the python3 test. ModuleNotFoundError: No module named 'monotonic' immediately after installing python-monotonic. Hm.
Michael Catanzaro
Comment 5 2021-01-19 11:32:21 PST
(In reply to Michael Catanzaro from comment #2) > I'm not sure why exactly version 18.0.1 was selected This was simply the last version to support python2.
Michael Catanzaro
Comment 6 2021-01-19 11:37:32 PST Comment hidden (obsolete)
Michael Catanzaro
Comment 7 2021-01-19 11:39:19 PST Comment hidden (obsolete)
Michael Catanzaro
Comment 8 2021-01-19 11:39:41 PST Comment hidden (obsolete)
Michael Catanzaro
Comment 9 2021-01-19 11:41:39 PST
(In reply to Michael Catanzaro from comment #2) > I'm not sure why exactly version 18.0.1 was selected, but > it seems to be a bad version. It seems versions 12 is the first version that is broken. So version 11 is the last version that supports python2 and works properly on Linux. I wonder if this is new enough for Jonathan's GitHub support that landed in r271506.
Michael Catanzaro
Comment 10 2021-01-19 11:44:29 PST
Michael Catanzaro
Comment 11 2021-01-19 11:46:38 PST
webkitpy bot is green. Jonathan, can you please check to ensure I haven't broken your GitHub credentials work?
Jonathan Bedard
Comment 12 2021-01-19 12:34:08 PST
(In reply to Michael Catanzaro from comment #11) > webkitpy bot is green. Jonathan, can you please check to ensure I haven't > broken your GitHub credentials work? I didn't need to update the library, I assumed (erroneously, clearly), that a newer version would be better. Before we land this change, I'd like to land another change that will help some of our bots out, because otherwise changing the library version on them will require manual intervention. Is it Ok if this change waits a few hours before landing?
Michael Catanzaro
Comment 13 2021-01-19 12:39:03 PST
Sure. I can't land it now anyway, since commit-queue is taking the day off, and I don't have an SVN account anymore. If you could give r+ when you're ready, that would be great.
Jonathan Bedard
Comment 14 2021-01-19 12:44:52 PST
(In reply to Michael Catanzaro from comment #13) > Sure. I can't land it now anyway, since commit-queue is taking the day off, > and I don't have an SVN account anymore. yeah, that's the other thing I'm working on right now :) > > If you could give r+ when you're ready, that would be great.
Jonathan Bedard
Comment 15 2021-01-19 13:00:52 PST
Comment on attachment 417897 [details] Patch Marking this cq- right now so no one accidentally commits it before our infrastructure is ready, in particular, we need https://bugs.webkit.org/show_bug.cgi?id=220744 first.
EWS
Comment 16 2021-01-19 17:47:18 PST
Committed r271634: <https://trac.webkit.org/changeset/271634> All reviewed patches have been landed. Closing bug and clearing flags on attachment 417897 [details].
Radar WebKit Bug Importer
Comment 17 2021-01-19 17:48:14 PST
Philippe Normand
Comment 18 2021-01-27 01:21:15 PST
Still borken BTW, when running webkit-patch in the Flatpak SDK runtime...
Jonathan Bedard
Comment 19 2021-01-27 07:51:59 PST
(In reply to Philippe Normand from comment #18) > Still borken BTW, when running webkit-patch in the Flatpak SDK runtime... What exactly does broken mean in this case? Seems likely it's something about keyring being unable to find some sort of key store.
Michael Catanzaro
Comment 20 2021-01-27 07:59:44 PST
(In reply to Jonathan Bedard from comment #19) > What exactly does broken mean in this case? Seems likely it's something > about keyring being unable to find some sort of key store. Yup, the problem is python-keyring is totally unable to find the system keyring. It's as if it thinks the system keyring doesn't exist. I did not debug it to figure out why, since the problem I was hitting was definitely fixed in the latest version.
Michael Catanzaro
Comment 21 2021-01-27 08:01:02 PST
(In reply to Michael Catanzaro from comment #1) > $ webkit-patch upload 220736 > Total errors found: 0 in 1 files > failed to get password from keyring: No recommended backend was available. > Install a recommended 3rd party backend package; or, install the > keyrings.alt package if you want to use the non-recommended backends. See > https://pypi.org/project/keyring for details. > bugs.webkit.org password for mcatanzaro@gnome.org: Looks like it's failing to discover its own backends. It's supposed to use python-secretstorage to talk to gnome-keyring via libsecret, but for whatever reason it doesn't realize python-secretstorage is installed.
Philippe Normand
Comment 22 2021-01-27 08:05:38 PST
I had this error: failed to get password from keyring: No recommended backend was available. Install a recommended 3rd party backend package; or, install the keyrings.alt package if you want to use the non-recommended backends. See https://pypi.org/project/keyring for details.
Jonathan Bedard
Comment 23 2021-01-27 08:40:50 PST
(In reply to Philippe Normand from comment #22) > I had this error: > > failed to get password from keyring: No recommended backend was available. > Install a recommended 3rd party backend package; or, install the > keyrings.alt package if you want to use the non-recommended backends. See > https://pypi.org/project/keyring for details. Oh, I wonder if it checks for the module instead of importing it, which would by-pass our auto-install clever-ness....or the "if sys.platform == 'linux':" is false in webkitscmpy's __init__.py
Note You need to log in before you can comment on or make changes to this bug.