jif
13ab0b254e
Preserve fallback token refreshes when the keyring is unreadable ( #58343 )
...
## Why
Automatic credential storage can load fallback credentials when the keyring is unreadable, but refreshing those credentials previously failed to save the rotated tokens. Unresolvable `auth.json` symlinks could also block keyring credential updates and logout.
## What changed
- Save refreshed fallback credentials to the file store when the keyring cannot be read, while still rejecting stale credentials and refreshes after logout. Leave the unread keyring entry untouched, even if it recovers before the save.
- Allow keyring commits to proceed when fallback symlink resolution fails. Continue sharing the resolved target's commit lock for valid symlink chains so logout coordinates with concurrent refreshes.
## Testing
Add regression coverage for persistent keyring read failures, stale fallback refreshes, logout, unusable fallback symlinks, and cross-process locking through chained symlinks.
GitOrigin-RevId: 32e35f54f9791df73247ae0af40ff3795c6253ba
2026-10-30 13:59:25 +00:00
..
2026-10-29 15:55:50 +00:00
2026-10-14 07:13:22 +00:00
2026-10-29 17:25:51 +00:00
2026-10-27 05:52:01 +00:00
2026-10-23 14:59:40 +00:00
2026-10-29 11:23:51 +00:00
2026-10-30 02:43:02 +00:00
2026-10-29 11:23:51 +00:00
2026-10-27 18:35:19 +00:00
2026-10-29 16:30:06 +00:00
2026-10-29 11:23:51 +00:00
2026-10-26 20:02:45 +00:00
2026-10-27 22:02:35 +00:00
2026-10-26 20:26:32 +00:00
2026-10-27 22:59:22 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 17:04:16 +00:00
2026-10-26 21:08:15 +00:00
2026-10-30 07:11:56 +00:00
2026-10-26 18:06:07 +00:00
2026-10-30 02:28:51 +00:00
2026-10-20 15:43:19 +00:00
2026-10-29 16:57:12 +00:00
2026-10-29 16:57:12 +00:00
2026-10-29 01:04:48 +00:00
2026-10-29 01:04:48 +00:00
2026-10-30 02:43:02 +00:00
2026-10-19 21:43:19 +00:00
2026-10-29 03:47:52 +00:00
2026-10-30 00:36:00 +00:00
2026-10-27 22:01:13 +00:00
2026-10-29 18:24:34 +00:00
2026-10-30 02:43:02 +00:00
2026-10-27 19:50:41 +00:00
2026-10-19 15:15:17 +00:00
2026-10-29 19:49:03 +00:00
2026-10-27 05:52:01 +00:00
2026-10-26 19:19:10 +00:00
2026-10-29 23:24:52 +00:00
2026-10-30 05:30:20 +00:00
2026-10-30 05:30:20 +00:00
2026-10-27 23:53:09 +00:00
2026-10-29 11:23:51 +00:00
2026-10-29 23:24:28 +00:00
2026-10-28 21:22:06 +00:00
2026-10-29 19:29:05 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 23:53:09 +00:00
2026-10-13 17:22:34 +00:00
2026-10-26 20:40:53 +00:00
2026-10-29 16:46:01 +00:00
2026-10-27 19:50:41 +00:00
2026-10-26 19:21:08 +00:00
2026-10-28 13:55:51 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:31:21 +00:00
2026-10-30 13:59:25 +00:00
2026-10-29 10:34:17 +00:00
2026-10-22 19:36:47 +00:00
2026-10-30 13:33:02 +00:00
2026-10-30 13:33:02 +00:00
2026-10-22 19:36:47 +00:00
2026-10-30 02:28:51 +00:00
2026-10-30 02:28:51 +00:00
2026-10-28 17:04:31 +00:00
2026-10-29 20:17:58 +00:00
2026-10-26 18:22:40 +00:00
2026-10-29 18:24:34 +00:00
2026-10-27 16:36:32 +00:00
2026-10-27 23:53:34 +00:00
2026-10-29 19:34:46 +00:00
2026-10-10 02:54:59 +00:00
2026-10-27 13:31:38 +00:00
2026-10-19 16:56:42 +00:00
2026-10-30 05:30:20 +00:00
2026-10-27 19:50:41 +00:00
2026-10-29 20:44:09 +00:00
2026-10-28 00:51:29 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 05:52:01 +00:00
2026-10-22 04:59:19 +00:00
2026-10-27 05:52:01 +00:00
2026-10-29 17:49:51 +00:00
2026-10-28 21:22:06 +00:00
2026-10-22 00:19:02 +00:00
2026-10-30 07:11:56 +00:00
2026-10-27 19:50:41 +00:00
2026-10-28 04:05:31 +00:00
2026-10-27 14:14:16 +00:00
2026-10-30 08:03:51 +00:00
2026-10-13 22:40:57 +00:00
2026-10-29 01:04:48 +00:00
2026-10-28 20:57:54 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 05:52:01 +00:00
2026-10-28 11:48:00 +00:00
2026-10-28 06:24:24 +00:00
2026-10-29 22:36:06 +00:00
2026-10-28 21:09:05 +00:00
2026-10-30 13:33:02 +00:00
2026-10-30 13:33:02 +00:00
2026-10-29 15:55:50 +00:00
2026-10-27 05:52:01 +00:00