@@ -445,7 +445,7 @@ func TestReviewerFailedLoopRecoveryEligibilityWhitelist(t *testing.T) {
445445 {name : "retryable restart from discover" , seed : failedReviewerRecoverySeed {ResumePolicy : "restart_from_discover" , QueueErrorKind : string (FailureRetryableAfterResume ), ErrorMessage : "PR head changed before publish" }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : true },
446446 {name : "retryable transient attempts remaining" , seed : failedReviewerRecoverySeed {ResumePolicy : "replay_step" , QueueErrorKind : string (FailureRetryableTransient ), ErrorMessage : "reviewer agent timed out" , QueueAttempts : 3 , QueueMaxAttempts : 5 }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : true },
447447 {name : "historical guardrail non retryable" , seed : failedReviewerRecoverySeed {ResumePolicy : "replay_step" , QueueErrorKind : string (FailureNonRetryable ), ErrorMessage : "review request removed before publish" }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : true },
448- {name : "retryable transient exhausted on final allowed run" , seed : failedReviewerRecoverySeed {ResumePolicy : "replay_step" , QueueErrorKind : string (FailureRetryableTransient ), ErrorMessage : "reviewer agent timed out" , QueueAttempts : 4 , QueueMaxAttempts : 5 }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : false },
448+ {name : "retryable transient ignores final allowed run" , seed : failedReviewerRecoverySeed {ResumePolicy : "replay_step" , QueueErrorKind : string (FailureRetryableTransient ), ErrorMessage : "reviewer agent timed out" , QueueAttempts : 4 , QueueMaxAttempts : 5 }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : true },
449449 {name : "manual intervention kind" , seed : failedReviewerRecoverySeed {ResumePolicy : "replay_step" , QueueErrorKind : string (FailureManualIntervention ), ErrorMessage : "operator needed" }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : false },
450450 {name : "manual intervention resume policy" , seed : failedReviewerRecoverySeed {ResumePolicy : "manual_intervention" , QueueErrorKind : string (FailureRetryableAfterResume ), ErrorMessage : "operator needed" }, pr : PullRequestSummary {Number : 42 , State : "OPEN" }, want : false },
451451 {name : "closed pr" , seed : failedReviewerRecoverySeed {ResumePolicy : "restart_from_discover" , QueueErrorKind : string (FailureRetryableAfterResume ), ErrorMessage : "PR head changed before publish" }, pr : PullRequestSummary {Number : 42 , State : "CLOSED" }, want : false },
@@ -6188,7 +6188,7 @@ func TestExecuteStepRetriesTransientDiscoverShellFailure(t *testing.T) {
61886188 }
61896189}
61906190
6191- func TestProcessClaimedItemPersistsExhaustedTransientDiscoverShellFailureAsRetryable (t * testing.T ) {
6191+ func TestProcessClaimedItemRequeuesTransientDiscoverShellFailureAfterMaxAttempts (t * testing.T ) {
61926192 fixture := newRunnerFixture (t )
61936193 github := & fakeGitHubGateway {}
61946194 runner := New (Options {DB : fixture .coordinator .DB (), Repos : fixture .repos , GitHub : github , Git : & fakeGitGateway {}, AgentExecutor : & fakeAgentExecutor {}, Logger : fixture .logger , Now : fixture .now , RetryBaseDelay : time .Nanosecond , RetryMaxAttempts : 1 })
@@ -6213,8 +6213,8 @@ func TestProcessClaimedItemPersistsExhaustedTransientDiscoverShellFailureAsRetry
62136213 if err != nil || queue == nil {
62146214 t .Fatalf ("Queue.GetByID() = (%#v, %v), want queue" , queue , err )
62156215 }
6216- if queue .Status != "manual_intervention " || queue .LastErrorKind == nil || * queue .LastErrorKind != string (FailureRetryableTransient ) || queue .LastError == nil || ! strings .Contains (* queue .LastError , "unexpected EOF" ) || queue .FinishedAt = = nil {
6217- t .Fatalf ("queue = %#v, want parked retryable transient item preserving GitHub error after exhaustion " , queue )
6216+ if queue .Status != "queued " || queue .LastErrorKind == nil || * queue .LastErrorKind != string (FailureRetryableTransient ) || queue .LastError == nil || ! strings .Contains (* queue .LastError , "unexpected EOF" ) || queue .FinishedAt ! = nil {
6217+ t .Fatalf ("queue = %#v, want requeued retryable transient item preserving GitHub error after max attempts " , queue )
62186218 }
62196219}
62206220
0 commit comments