ES /docs

Cupix::Event logger init fails — permission denied on log file

Plan: Cupix::Event logger init fails — Permission denied on log file

사용자가 선택한 범위#

사용자는 RCA Fix Recommendation"### 즉시 조치 (Critical)" 섹션만 구현하도록 명시적으로 지시했습니다. "단기 개선 (1주 이내)" 과 "장기 개선 (재발 방지)" 섹션은 범위 밖입니다.

즉시 조치 섹션 원문 요약#

RCA ## Fix Recommendation > ### 즉시 조치 (Critical):

  1. 호스트 inspect 후 권한 복구
    • 영향 받은 EB 인스턴스에서 ls -lZ /var/app/current/log/tesla_production-event.log 와 디렉토리의 소유자/모드를 확인.
    • webapp user (보통 webapp 또는 nginx) 가 read/write 가능하도록 chown/chmod.
    • logrotate 또는 배포 스크립트가 root 권한으로 파일을 재생성하지 않는지 확인.
  2. 영향 파일: 운영 인프라 (Elastic Beanstalk .platform/hooks 또는 logrotate 설정).
  3. 코드 변경은 즉시 단계에서 불필요. (RCA 원문 그대로)

Changes#

  • (코드 변경 없음)

분석: 왜 코드 변경이 없는가#

1. RCA 자체의 명시적 지시#

위 인용대로 RCA 작성자는 즉시 조치를 운영 호스트에서 수행하는 inspection + 권한 복구로 정의했습니다. "코드 변경은 즉시 단계에서 불필요"라고 명시했습니다.

2. 가장 가까운 과거 episode 의 코드 fix 는 이미 적용 완료#

memory/episodes/a9c32b99-c6e8-4f8d-844b-98c013e139d6.yaml거의 동일한 에러 ("Failed to create event: Permission denied @ rb_sysopen - tesla_production-event.log") 에 대한 과거 fix (TSLA-12569) 를 기록하고 있습니다. 그 때의 코드 변경은:

  • .platform/hooks/postdeploy/70_restart_sidekiq.sh
  • .platform/hooks/postdeploy/71_restart_transfer_sidekiq.sh
  • .platform/hooks/postdeploy/72_restart_migration_sidekiq.sh

세 파일에 touch tesla_$RACK_ENV-event.log 를 추가한 것입니다.

현재 시점 ($REPOS_DIR/tesla, 2026-06-19) 에서 세 파일을 확인한 결과 이미 모두 적용되어 있습니다:

70_restart_sidekiq.sh:12-17 (현재 master)sh
APP_LOG_DIR="/var/app/current/log"
APP_LOG_FILEPATH="$APP_LOG_DIR/tesla_$RACK_ENV-json.log"
APP_EVENT_LOG_FILEPATH="$APP_LOG_DIR/tesla_$RACK_ENV-event.log"

touch $SIDEKIQ_LOG $APP_LOG_FILEPATH $APP_EVENT_LOG_FILEPATH
chown -R $EB_APP_USER:$EB_APP_USER $SIDEKIQ_LOG $APP_LOG_DIR

71, 72 도 동일한 패턴으로 적용되어 있습니다. 따라서 과거의 .platform/hooks 기반 fix 는 추가로 변경할 여지가 없습니다.

3. 단기/장기 개선은 범위 밖#

RCA 의 단기 개선 (옵션 A: lib/cupix/event.rb 의 lazy/safe init, 옵션 B: Eventable rescue 분리) 과 장기 개선 (logger 채널 일원화 → STDOUT/CloudWatch) 은 의미 있는 코드 변경 영역이지만, 사용자가 명시적으로 "즉시 조치" 만 선택했으므로 본 cluster 의 자동 fix 범위에서는 다루지 않습니다.

Acceptance Criteria#

본 cluster 는 코드 변경을 통한 자동 fix 대상이 아닙니다. 운영팀이 다음을 수행해야 합니다 (자동화 범위 밖):

  • 영향 받은 EB worker 인스턴스에서 ls -l /var/app/current/log/tesla_production-event.log* 로 소유자/모드 확인
  • 파일이 webapp 이외 (예: root) 소유로 되어 있다면 chown webapp:webapp /var/app/current/log/tesla_production-event.log* 로 복구
  • 로테이트된 파일들 (tesla_production-event.log.YYYYMMDD) 도 동일하게 점검
  • 14일 baseline 대비 후속 발생이 사라지는지 Datadog 쿼리로 확인:
    • service:cupixworks-worker status:error "Permission denied" "tesla_production-event.log"

다음 단계 권장#

  • 운영 핸드오프: 본 cluster 는 운영팀이 호스트에서 처리하는 항목으로 분류됩니다. summary.mdx 의 핸드오프 섹션 참조.
  • 재발 시: 동일 에러가 14일 내 재출현하면 RCA 의 단기 개선 (옵션 B — Eventable rescue 분리) 이 다음 후보 fix 입니다.