Skip to content

fix: preserve retry timeout errors - #592

Open
bensynapse wants to merge 1 commit into
projectdiscovery:mainfrom
bensynapse:fix-retry-timeout-error
Open

bensynapse wants to merge 1 commit into
projectdiscovery:mainfrom
bensynapse:fix-retry-timeout-error

Conversation

@bensynapse

Copy link
Copy Markdown

I run Live Tennis API.

When Options.Timeout expires during backoff, Do exits the retry loop with the previous request error. After a retryable response, that error is nil. PassthroughErrorHandler then returns success even though the deadline expired.

Save context.DeadlineExceeded before leaving the loop. The default error now wraps it, and custom handlers receive it. Six test cases cover response retries, transport failures and ordinary retry exhaustion. All four timeout cases fail before the fix.

go test -race -count=1 -json ./... passes all 45 tests and subtests on Go 1.26.0. go build ./... and go run . -short in examples/ both pass.

golangci-lint 2.12.2 reports two QF1008 findings in unchanged request_test.go. Untouched upstream reports the same two findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant