Files

6.6 KiB

2026-02-08 Daily Log

🚨 Critical Incident #2: Self-Healing System 실패

타임라인

  • 11:29 — Gateway 무한 재시작 시작 (tools.exec.allowlist config 키 문제)
  • 11:29-11:40 — Watchdog 130→158회 재시도 후 Exponential Backoff 발동
  • 11:40:08 — Backoff 완료, 재시작 시도 (여전히 실패)
  • 11:41-11:44 — 재시도 164→181회, Backoff 재진입
  • 11:44 — 정우님 맥미니 직접 접속하여 수동 복구
  • 11:45:19 — Gateway 정상 복구 (PID 80021)
  • 12:17openclaw doctor --fix로 Config 완전 정리

근본 원인

Config에 tools.exec.allowlist 키가 남아있었음

  • 스키마에 없는 키 → Gateway 시작 시 exit_1 에러
  • 이전 config patch 시 실수로 추가되었거나 제거 누락

셀프 복구 시스템 실패 분석

Level 1 (Watchdog) — ⚠️ 부분 작동

문제:

  • 재시도 횟수 6회 초과 → Exponential Backoff (10분 대기)
  • 근본 원인(Config) 해결 못 함 → 무한 재시작만 반복
  • 최종 185회 재시도

교훈:

  • Watchdog는 "폭주 방지"지 "치료"가 아님
  • Config 문제는 외부 개입 필요

Level 2 (Health Check) — 무력

문제:

  • Gateway가 죽으면 HTTP 체크 의미 없음
  • 재시작해도 Config 문제로 다시 죽음

교훈:

  • Health Check는 "일시적 장애"만 복구 가능
  • "구조적 문제"는 Level 3 필요

Level 3 (Emergency Recovery) — 미작동

문제:

  • Claude CLI 미설치
  • tmux 세션 시작도 못 함

교훈:

  • 즉시 조치: Claude CLI 설치 필수
  • Emergency Recovery는 "최후의 수단"

Level 4 (Discord Alert) — 미작동

문제:

  • HTTP 404 (채널 ID 문제)
  • 알림 실패로 정우님 인지 지연

교훈:

  • 즉시 조치: Discord 채널 ID 검증 필요

복구 과정

  1. 정우님 수동 개입 (11:40-11:44)
    • 맥미니 접속
    • Config 수정 또는 수동 재시작
  2. Gateway 정상 복구 (11:45:19)
    • Watchdog가 크론 catch-up 자동 실행
  3. Config 정리 (12:17)
    • openclaw doctor --fix 실행
    • tools.exec.allowlist 키 제거

교훈 (두 번째 무한 재시작 사건)

1. Config Validation 부재

  • 문제: Invalid config key가 Gateway 시작을 막음
  • 해결: Config 변경 시 openclaw doctor 필수
  • 개선: Config patch 전 schema validation 추가

2. Self-Healing Single Point of Failure

  • 문제: Level 2-4 모두 Gateway 의존 → Gateway 죽으면 전멸
  • 해결: Level 3 (Claude CLI) 설치 → 독립적 복구 경로 확보
  • 개선: LaunchAgent 기반 Level 0 추가 (Config validation + fix)

3. Emergency Recovery Dependency 미검증

  • 문제: Level 3 의존성(Claude CLI) 미설치
  • 문제: Level 4 의존성(Discord 채널) 잘못됨
  • 해결: Dependency check 스크립트 작성
  • 개선: 시스템 시작 시 자동 검증

4. Watchdog Backoff의 한계

  • 문제: Backoff는 "폭주 방지"지만 "근본 원인 해결" 못 함
  • 해결: Backoff 진입 시 Emergency Recovery 즉시 호출
  • 개선: Backoff 임계값 동적 조정 (Config 문제 감지 시 더 빨리 에스컬레이션)

즉시 조치 사항

  • Claude CLI 설치 (Level 3 활성화) — 12:28 완료 (v2.1.37)
  • Discord 알림 수정 (Level 4) — 12:28 완료 (webhook 제거, stdout 사용)
  • Config Validator (Level 0) — 12:34 완료 (LaunchAgent 등록, 5분 간격)
  • Watchdog v5.2 (Backoff → Level 3) — 12:34 완료 (재시작됨)
  • Self-Healing dependency check 추가 (선택)

통계

  • 총 재시도 횟수: 185회
  • 장애 시간: ~15분 (11:29-11:45)
  • 수동 개입: 정우님 (11:40-11:44)
  • 복구 완료: 11:45:19
  • Config 정리: 12:17

🔍 Self-Healing v2.0 개선 계획

목표

"정우님이 잠자는 동안 무슨 일이 생겨도 아침에는 정상 작동 중이어야 한다"

개선 방향

1. Level 0 추가: Config Guardian

  • 목적: Config 문제를 Gateway 시작 전에 감지
  • 구현: LaunchAgent (독립 프로세스)
  • 체크:
    • openclaw doctor 실행
    • Invalid config key 감지 → 자동 --fix
    • Schema validation
  • 빈도: 5분마다 + Config 변경 감지 시

2. Level 3 강화: Claude CLI 의존성 제거

  • 현재: Claude CLI 필수 → 없으면 작동 안 함
  • 개선:
    • Fallback #1: OpenClaw CLI로 config diff 분석
    • Fallback #2: 마지막 정상 config로 rollback
    • Fallback #3: Claude CLI 호출 (선택)

3. Watchdog v5.2: Smart Escalation

  • 현재: Backoff 진입 → 10분 대기 (아무것도 안 함)
  • 개선:
    • Backoff 진입 시 즉시 Level 3 호출
    • Config 문제 패턴 감지 → Level 0 호출
    • 3회 연속 실패 → Emergency Recovery 강제 실행

4. Level 4 수정: Multi-channel Alert

  • 현재: Discord 단일 채널 (404 시 실패)
  • 개선:
    • Telegram fallback 추가
    • SMS 최후 수단 (Twilio API)
    • Email 알림 (SMTP)

구현 우선순위

  1. HIGH: Claude CLI 설치 (즉시)
  2. HIGH: Discord 채널 ID 수정 (즉시)
  3. MEDIUM: Level 0 Config Guardian (이번 주)
  4. MEDIUM: Watchdog v5.2 Smart Escalation (이번 주)
  5. LOW: Multi-channel Alert (다음 주)

📊 시스템 전반 점검 (12:00)

완료 사항

  • Gateway 업데이트: 2026.2.6-3 적용
  • exec.security: fullallowlist 변경 (22 패턴)
  • 크론 점검: 39개 활성 크론 정상 작동
  • Self-Healing: 4-Layer 모두 복구 완료

보안 개선

  • allowlist 패턴: bash, node, git, python3, curl, docker 등
  • ask: on-miss: 미등록 명령어는 승인 필요

🔄 컨텍스트 압축 (12:35)

세션 상태

  • 컨텍스트: 70% (141k/200k)
  • Compactions: 50회
  • 모델: claude-opus-4-5 (Thinking: high)

압축 전 핵심 진행상황

  1. Self-Healing v2.0.1 완료 (GitHub + ClawHub 동기화)
  2. V5.0.1 자기평가 시스템 완료 (9.80/10)
  3. Watchdog v5.1 업그레이드 (zombie SIGKILL + cron catch-up)
  4. 블로그 3부작 초안 완료 (발행 대기)
  5. 데일리 넛지 크론 생성 (평일 06:20)
  6. PitchHut 등록 완료

진행 중

  • Clawdex 스킬 검증 정책 강화
  • 블로그 발행 (draft: false)
  • n8n 워크플로우 시작

다음 단계

  1. Discord 질문 응답 ("진행중?")
  2. TOOLS.md 업데이트 (gog 계정 정보)
  3. 데일리 넛지 모니터링 (첫 실행: 2/10 월)

MEMORY.md 업데이트 완료

  • 두 번째 무한 재시작 사건 기록 (Important Decisions)
  • Self-Healing 한계 문서화
  • v2.0 개선 계획 참조