ci(smoke): 네트워크 도달 실패와 계약 파손을 분리 (canary 오탐 수정) - #18
Merged
Conversation
스케줄 canary 실패는 스킬 결함이 아니라 canary 오탐이었다. 러너에서 백엔드 A/B 진단을 돌린 결과: seoulshinbo urllib FAIL(timeout 30.8s) / curl_cffi FAIL(curl 28, 30.0s) bizinfo urllib OK(200) / curl_cffi OK(200) seoulshinbo 는 TLS 지문 문제가 아니라 러너(해외 IP)에서 TCP 연결 자체가 안 되는 구조적 도달 불가다 — 같은 시각 한국 IP 로컬에서는 16건 정상 수집된다. bizinfo 는 간헐 flake(한 런에서 타임아웃, 3분 뒤 정상). 크롤러의 exit 2 는 이 도달 실패와 "첫 페이지 0건 파싱(진짜 계약 파손)"을 구분하지 않아, 둘 다 빨간불이 되면 canary 가 상시 실패로 굳고 진짜 파손이 묻힌다. - .github/smoke_step.sh: 라이브 스텝 래퍼. 도달 실패는 30초 뒤 1회 재시도 후에도 실패하면 ::warning:: 으로 강등, 그 외 실패는 그대로 job 실패. - gov24 의 인라인 exit-4 처리를 래퍼의 SMOKE_SKIP_RC 계약으로 통일. seoulshinbo 의 계약 검증은 한국 IP에서 region_crawl.py 를 직접 돌려야 한다는 점을 워크플로 주석에 남겼다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
문제
스케줄 smoke canary가 양 레포에서 실패 상태였다. 원인은 스킬 결함이 아니라 canary 자체의 오탐이다.
크롤러의
exit 2는 두 가지를 구분하지 않는다:근거
러너에서 백엔드 A/B 진단을 직접 돌렸다:
seoulshinbo는 TLS 지문 문제가 아니라 TCP 연결 자체가 안 되는 구조적 도달 불가. 같은 시각 한국 IP 로컬에서는 16건 정상 수집.bizinfo·kocca·smtech는 간헐 flake (한 런에서 타임아웃, 몇 분 뒤 정상).둘 다 빨간불로 만들면 canary가 상시 실패로 굳어 진짜 계약 파손이 묻힌다.
수정
.github/smoke_step.sh— 라이브 스텝 래퍼. 도달 실패는 30초 뒤 1회 재시도, 그래도 실패하면::warning::으로 강등. 그 외 실패는 그대로 job 실패.검증
래퍼 4개 분기를 로컬에서 확인(정상 0 / 도달실패 soft 0 / 계약파손 hard 2 / flake 재시도 후 0)했고, 브랜치에서 실제 smoke를 돌려 통과시켰다.
🤖 Generated with Claude Code
추가로 gov24의 인라인 exit-4 처리를 래퍼의
SMOKE_SKIP_RC계약으로 통일했다.seoulshinbo는 러너에서 상시 warning이 정상이며, 이 소스의 계약 검증은 한국 IP에서
region_crawl.py를 직접 돌려야 한다는 점을 워크플로 주석에 남겼다 (run 30305398387 ✓).