Skip to content

seed_pose_data_bulk.sh가 저장소 루트가 아니라 loadtest/에서 .env를 찾아 fresh EC2에서 즉시 실패한다 #683

Description

@Khyojae

배경

카드 A 쓰기 처리량(ms) 실측(docs/decisions/covering-index-write-throughput.md) 착수 중 run_all.shcard_a_seed phase가 fresh EC2 인스턴스에서 즉시 실패했다.

현상 (근거, file:line)

  • loadtest/seed/seed_pose_data_bulk.sh:16:
    cd "$(dirname "$0")/.."
    스크립트가 loadtest/seed/에 있으므로 dirname "$0" = loadtest/seed, 그 부모(..)는 loadtest/ 다 — 저장소 루트(E:/init/ 또는 EC2의 /root/init/)가 아니다.
  • 다음 줄(:17)이 그 위치에서 .env를 찾는다:
    set -a; . ./.env; set +a
    .env는 저장소 루트에 있지 loadtest/에는 없어서 fresh EC2 체크아웃(로컬 개발 환경엔 우연히 다른 .env가 있을 수도 있어 안 걸릴 여지가 있다)에서 곧바로 실패한다.

재현 (실제 로그)

/root/init/loadtest/seed/seed_pose_data_bulk.sh: line 17: ./.env: No such file or directory
=== pose_data 벌크 시딩 — 목표 5120MB ===
/root/init/loadtest/seed/seed_pose_data_bulk.sh: line 21: MYSQL_ROOT_PASSWORD: unbound variable

(MYSQL_ROOT_PASSWORD.env가 정상 로드됐어야 채워지는 값이다.)

영향

  • run_all.shphase_card_a_seed가 이 스크립트를 그대로 호출하므로, card_a_seed phase가 fresh EC2 라운드에서 항상 즉시 FAIL한다(rc=1).
  • 더 심각한 것: phase_card_a_seed가 실패해도 phase_card_a(measure_205_card_a_write_cost.sh)는 별도 phase라 계속 돌아간다 — 즉 pose_data가 시딩 실패로 **0MB(빈 테이블)**인 채로 카드 A 측정이 그대로 실행돼, "버퍼풀(2,048MB)을 넘는 규모에서 잰다"는 이 rig 자신의 전제(주석에 명시: "버퍼풀을 넘는가가 이 판의 전제다 — R8은 그러지 못해 «메모리 안»만 쟀다")가 깨진 채로 "측정 완료"처럼 보이는 무효 판이 나온다. 실제로 2026-09-06 착수 1차 시도(ec2-20260906-024820)에서 이렇게 재현됐고, 그 산출물의 숫자가 2026-08-20 로컬 카드 A 결과와 값까지 거의 동일해(같은 빈 테이블/소규모 조건이라 재현된 것으로 추정) 겉보기엔 "정상 측정된 것"처럼 보였다 — 결과 문서를 직접 열어보지 않으면 이 무효화를 못 알아챈다.
  • 이 실패 자체도 #641의 AUTO_SHUTDOWN 오작동과 겹칠 수 있다(같은 라운드에서 다른 phase가 있어 이번엔 박스가 안 꺼졌지만, card_a_seed만 단독으로 도는 라운드였다면 재현 가능).

재현

# EC2 fresh checkout에서
bash loadtest/seed/seed_pose_data_bulk.sh
# → line 17: ./.env: No such file or directory

제안

cd "$(dirname "$0")/.."cd "$(dirname "$0")/../.."로 고치거나(스크립트가 loadtest/seed/에 있으므로 저장소 루트까지 두 단계 올라가야 함), git rev-parse --show-toplevel 등으로 저장소 루트를 명시적으로 구하는 방식으로 바꾸면 해결된다. 이번 라운드는 워크어라운드로 .envloadtest/에 복사해서 우회했다(스크립트 자체는 안 고쳤다).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    rig측정 장치·실험 문서의 결함. 그 실험이 끝나면 같이 죽는다

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions