fix(notify): flaky 테스트를 결정론적으로 — main 게이트 복구 - #15
Merged
Conversation
TestRecoversBeforeExhausting 이 20ms 뒤 서버를 성공으로 바꿨는데, 백오프 합계(1+2+4+8ms)가 그보다 짧아 빠른 환경에서는 재시도가 먼저 소진됐다. 로컬은 통과하고 CI 는 실패하는 전형적인 시간 경주다 — 실제로 #14 의 게이트가 이것 때문에 빨간불이었다. 성공 시점을 시간이 아니라 **호출 횟수**로 만든다(처음 두 번 실패, 세 번째 성공). 시도 횟수까지 단언해 '몇 번 만에 복구했는가' 도 고정한다. 로컬 8회 반복 + race 3회 통과 확인.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
main 이 빨간 상태입니다. #14 가 CI 실패에도 머지됐습니다(브랜치 보호 규칙 부재).
원인 — 제가 만든 시간 경주
TestRecoversBeforeExhausting이 20ms 뒤 서버를 성공으로 바꾸는데, 백오프 합계가1+2+4+8ms라 빠른 환경에서는 재시도가 먼저 소진됩니다. 로컬은 통과하고 CI 는 실패하는 전형적인 패턴입니다.수정
성공 시점을 시간이 아니라 호출 횟수로 만듭니다 — 처음 두 번 실패, 세 번째 성공. 시도 횟수까지 단언해 "몇 번 만에 복구했는가"도 고정합니다.
로컬 8회 반복 +
-race3회 통과 확인.함께 볼 것
브랜치 보호 규칙이 없어 게이트가 빨간불이어도 머지가 됩니다. 게이트를 통과 조건으로 강제할지는 별도 판단이 필요합니다 — 지금은 사람이 확인해야 막힙니다.