shuke987 opened a new pull request, #69510:
URL: https://github.com/apache/doris/pull/69510

   ### What problem does this PR solve?
   
   Issue Number: N/A
   
   Related PR: #69469
   
   Problem Summary: A single transient GitHub response currently aborts the 
review pipeline. [Input resolution for 
#69322](https://github.com/apache/doris/actions/runs/39794013905/job/119876748768)
 stopped on a GET 503 despite `Retry-After: 2`; [aggregate resolution for 
#69438](https://github.com/apache/doris/actions/runs/39760934956/job/119764632659)
 stopped on a paginated GET 504 after emitting partial output.
   
   The shared helper now retries recognized body-free REST GETs on 502/503/504, 
for at most three attempts. Each attempt has a 30-second limit; attempts and 
waits share a 90-second budget or the caller's shorter timeout. It respects 
Retry-After, records every failed attempt, discards failed pagination output, 
and returns only a successful attempt's complete output. Exhaustion still 
fails. Writes, GraphQL, unknown argument forms, other HTTP errors, 
transport/timeouts and JSON parsing errors are not retried.
   
   Input resolution can also fail before publishing its PR-number output. 
Failure notices now fall back to the authorized trigger's numeric PR identity, 
explicitly select the repository, and name the input-resolution failure in both 
the notice and terminal error. This fallback does not permit status publication 
for an unresolved head/base.
   
   This change can merge independently. It includes the same explicit `--repo` 
argument as #69469; a local combination with #69469 and #69504 merged cleanly 
and passed the macOS suite.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test:
     - [x] Unit Test: `PYTHONDONTWRITEBYTECODE=1 RUN_GH_HTTP_TESTS=1 python3 -m 
unittest discover -s .github/scripts -p 'test_*.py'` — 281 tests, 262 passed / 
19 Linux-only skips on macOS.
     - [x] Manual test: real gh 2.88.1 against a loopback server with fake 
credentials verifies 503 recovery, whole-pagination restart after 504, 
three-attempt exhaustion with empty stdout, and no POST retries. Unit cases 
cover short budgets, Retry-After seconds/dates, malformed or over-budget waits, 
non-transient errors, cancellation and input-failure notification.
     - [x] Integration: local merge with #69469 and #69504 — 294 tests, 275 
passed / 19 Linux-only skips; no conflicts.
     - [x] Linux supervision/auth subset in a network-disabled container: 101 
of 103 passed. The two failures also reproduce on unchanged base 
`0d777cd0791553da6f271cb7a62811aa165832fc`: 
`test_capacity_after_submission_is_success_without_auth_quarantine` and 
`test_success_is_not_quarantined_even_with_earlier_stderr_error`. Both old 
fixtures omit fields required by `validate_submission`; neither reaches a new 
retry failure.
     - [x] actionlint 1.7.7 and `git diff --check`; actionlint disables 
unavailable ShellCheck/Pyflakes integrations and filters its existing 
unsupported `concurrency.queue` diagnostic.
     - Live Actions recovery has not been exercised; no rerun, review comment 
or status write was manually triggered.
   - Behavior changed:
     - [x] Yes. Transient read failures receive bounded retries; 
input-resolution failure notices can reach the original PR.
   - Does this need documentation?
     - [x] Yes. Updated `.github/scripts/review-github-diagnostics.md` in this 
PR.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to