무엇이
run_all.sh의 마지막 자동 종료 블록(2050번대 줄)이 2대 구성 중 P4(REPLICA_HOST)만 처리하고 P6/coresidency(TARGET_HOST)는 처리하지 않는다.
if [ "$AUTO_SHUTDOWN" = "1" ] && [ "$FINAL_OK" = "1" ]; then
if [ -n "$REPLICA_HOST" ]; then
$REPLICA_SSH "shutdown -h +$SHUTDOWN_DELAY_MIN ..."
...
fi
shutdown -h +"$SHUTDOWN_DELAY_MIN" "측정 종료 — run_all.sh"
TARGET_HOST/TARGET_SSH 를 쓰는 라운드(P6 coresidency: 러너가 부하기에서 돌며 TARGET_SSH로 대상 박스를 몬다, aws/README.md "P6 — 2대 구성" 절)는 이 블록에서 완전히 빠져 있다. 러너(부하기) 박스는 자기 자신을 정상 종료하지만, 대상 박스는 아무도 안 끈다.
재현 / 근거
- R9(從,
loadtest/results/coresidency-aws-2026-09-08/) — 러너는 부하기(c7i.xlarge, i-0db63f839af27479d)에서 돌았고 collect 단계까지 OK로 정상 종료(README 참고).
- 대상 박스(
c7i.4xlarge, i-01bfa1c0618f6fc0c)는 run_all.sh의 collect 완료(2026-09-07 21:48 UTC) 이후에도 계속 running으로 남아 있었고, 2026-09-08 00:11 UTC에 사람이 수동 terminate — 약 2시간24분 초과 과금.
run_all.sh 코드 확인 결과 이 블록에 TARGET_HOST 분기가 아예 없음(REPLICA_HOST 분기만 존재) — 코드상 원인이 확정됨.
제안
REPLICA_HOST 분기와 같은 패턴으로 TARGET_HOST 분기를 추가한다 ($TARGET_SSH "shutdown -h +$SHUTDOWN_DELAY_MIN ..."). REPLICA_HOST 처리와 마찬가지로 FINAL_OK일 때만 끈다 — 업로드 실패 시 대상 박스도 남겨서 들여다볼 수 있어야 한다는 원칙은 동일하게 적용.
미검증
- 이 수정을 실제 EC2 P6 라운드로 검증하지는 않음(코드 리딩으로만 원인 확정).
무엇이
run_all.sh의 마지막 자동 종료 블록(2050번대 줄)이 2대 구성 중 P4(REPLICA_HOST)만 처리하고 P6/coresidency(TARGET_HOST)는 처리하지 않는다.TARGET_HOST/TARGET_SSH를 쓰는 라운드(P6 coresidency: 러너가 부하기에서 돌며TARGET_SSH로 대상 박스를 몬다,aws/README.md"P6 — 2대 구성" 절)는 이 블록에서 완전히 빠져 있다. 러너(부하기) 박스는 자기 자신을 정상 종료하지만, 대상 박스는 아무도 안 끈다.재현 / 근거
loadtest/results/coresidency-aws-2026-09-08/) — 러너는 부하기(c7i.xlarge,i-0db63f839af27479d)에서 돌았고collect단계까지OK로 정상 종료(README 참고).c7i.4xlarge,i-01bfa1c0618f6fc0c)는run_all.sh의collect완료(2026-09-07 21:48 UTC) 이후에도 계속running으로 남아 있었고, 2026-09-08 00:11 UTC에 사람이 수동 terminate — 약 2시간24분 초과 과금.run_all.sh코드 확인 결과 이 블록에TARGET_HOST분기가 아예 없음(REPLICA_HOST 분기만 존재) — 코드상 원인이 확정됨.제안
REPLICA_HOST 분기와 같은 패턴으로 TARGET_HOST 분기를 추가한다 (
$TARGET_SSH "shutdown -h +$SHUTDOWN_DELAY_MIN ..."). REPLICA_HOST 처리와 마찬가지로 FINAL_OK일 때만 끈다 — 업로드 실패 시 대상 박스도 남겨서 들여다볼 수 있어야 한다는 원칙은 동일하게 적용.미검증