History

Merge pull request #1140 from sxjeru/main

fix(auth): handle quota cooldown in retry logic for transient errors

Chén Mù committed 9 months ago

Commit 1d6e2e72 parents 15ae83a 30a59161 file · +11 −3Browse files

Unified · Split

sdk/cliproxy/auth/conductor.go+11−3
@@ -1416,8 +1416,12 @@ func (m *Manager) MarkResult(ctx context.Context, result Result) { · 1415 unmodified lines
14161416 shouldSuspendModel = true
14171417 setModelQuota = true
14181418 case 408, 500, 502, 503, 504:
1419− next := now.Add(1 * time.Minute)
1420− state.NextRetryAfter = next
1419+ if quotaCooldownDisabled.Load() {
1420+ state.NextRetryAfter = time.Time{}
1421+ } else {
1422+ next := now.Add(1 * time.Minute)
1423+ state.NextRetryAfter = next
1424+ }
14211425 default:
14221426 state.NextRetryAfter = time.Time{}
14231427 }
@@ -1668,7 +1672,11 @@ func applyAuthFailureState(auth *Auth, resultErr *Error, retryAfter *time.Durati · 244 unmodified lines
16681672 auth.NextRetryAfter = next
16691673 case 408, 500, 502, 503, 504:
16701674 auth.StatusMessage = "transient upstream error"
1671− auth.NextRetryAfter = now.Add(1 * time.Minute)
1675+ if quotaCooldownDisabled.Load() {
1676+ auth.NextRetryAfter = time.Time{}
1677+ } else {
1678+ auth.NextRetryAfter = now.Add(1 * time.Minute)
1679+ }
16721680 default:
16731681 if auth.StatusMessage == "" {
16741682 auth.StatusMessage = "request failed"