Repository navigation
Commit a502fb2
authored
fix(oauth): take over a lapsed refresh lease, share overlapping service-account key reads, and label unsearched accounts (#9537)
* fix(search): keep a valid token when a refresh lease is orphaned, share overlapping service-account reads, and label unsearched accounts
* fix(oauth): serve a stored token only when a refresh wait ran out on a held lease
- A failed blocking refresh now falls back to the stored token only on a distinct
lease-held outcome: this caller followed another lease holder for its whole wait, its
last read still found the chain it started from, and no leader flagged it dead. A dead
flag, a terminal refresh error, a vanished account or a leader exception stay failures.
- The in-process refresh settles after the follower's full wait plus headroom instead of
the default 30s, which fired before the follower's last read could count; a leader hung
in this process still fails its callers, now at that bound.
* fix(oauth): let a cancelled service-account mint stop waiting on a shared key read
* docs(oauth): say why the stored-token fallback floor sits below the refresh window
* fix(oauth): take over a lapsed refresh lease instead of serving the stored token
- A follower whose wait ends with nothing now tries the lock once more: a leader whose process
died leaves its lease to lapse, and the follower leads the refresh instead of failing. Losing
that try still returns nothing.
- Drops the stored-token fallback and its lease-held outcome, which served tokens below the
five-minute floor a served token keeps.
- The leader rereads the dead flag under the lock, so a follower taking over after a leader
that failed terminally does not call the provider again.
- The in-process refresh settles after the follower wait plus a full leader run and headroom.1 parent f16b71a commit a502fb2
8 files changed
Lines changed: 636 additions & 274 deletions
File tree
- apps/sim/lib
- concurrency
- core/utils
- knowledge/search
- oauth
- sim-search/live
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
122 | 148 | | |
123 | 149 | | |
124 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
22 | 29 | | |
23 | 30 | | |
24 | 31 | | |
| |||
42 | 49 | | |
43 | 50 | | |
44 | 51 | | |
45 | | - | |
| 52 | + | |
46 | 53 | | |
47 | 54 | | |
48 | 55 | | |
| |||
57 | 64 | | |
58 | 65 | | |
59 | 66 | | |
| 67 | + | |
| 68 | + | |
60 | 69 | | |
61 | 70 | | |
62 | 71 | | |
| |||
68 | 77 | | |
69 | 78 | | |
70 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
71 | 94 | | |
72 | 95 | | |
73 | 96 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
| 152 | + | |
151 | 153 | | |
152 | 154 | | |
153 | 155 | | |
| |||
0 commit comments