ci(smoke): 네트워크 도달 실패와 계약 파손을 분리 (canary 오탐 수정) - #24
Merged
Conversation
스케줄 canary가 실패한 원인은 스킬 결함이 아니라 canary 자체의 오탐이었다. 2026-07-27 스케줄 런에서 bizinfo가 HTTP 28(타임아웃)로 exit 2를 냈는데, 같은 커밋 재실행에서는 4개 소스 전부 정상 수집됐고 한국 IP 로컬에서도 항상 정상이다. 러너는 해외 IP라 일부 한국 공공기관 사이트에 간헐적으로 닿지 못한다. 크롤러의 exit 2는 "첫 페이지 0건 파싱(계약 파손)"과 "네트워크 도달 실패"를 구분하지 않는다. 둘을 같이 빨간불로 만들면 canary가 상시 실패 상태가 되고 진짜 계약 파손이 묻힌다. - .github/smoke_step.sh: 라이브 스텝 래퍼. 도달 실패는 30초 뒤 1회 재시도 후에도 실패하면 ::warning:: 으로 강등, 그 외 실패는 그대로 job 실패. 네트워크 신호를 먼저 판정한다 — 도달 실패는 0건 파싱을 부수적으로 유발하지만, 그 역은 성립하지 않는다. - sources `list all` 단일 스텝을 소스별 스텝으로 분리. 한 출력에 묶이면 한 소스의 도달 실패가 다른 소스의 계약 파손까지 warning 으로 강등시킨다. 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
이 실행에서 kocca·smtech가 실제로 타임아웃 났고 warning으로 강등되어 job은 ✓ 통과했다 (run 30305395987).