Insane Codex Disk Usage from Subagents · Issue #34061 · openai/codex
Feed

Insane Codex Disk Usage from Subagents · Issue #34061 · openai/codex

jezell
2026.07.20
·GitHub·by igor
#Codex#Subagents#Disk Usage#Performance#Logging

핵심 포인트

  • 1Codex CLI의 하위 에이전트(subagent) 세션이 과도한 JSONL 로그를 생성하여 단일 사용자 환경에서 약 755 GiB에 달하는 디스크 공간을 점유하는 심각한 성능 오류가 발생했습니다.
  • 2분석 결과, 특정 상위 스레드에서 생성된 2,393개의 하위 세션이 비정상적으로 높은 빈도의 이벤트와 대규모 컴팩션(compaction) 데이터를 반복적으로 기록하며 저장소를 잠식하는 것으로 나타났습니다.
  • 3향후 시스템 안정성을 위해 세션 저장소에 대한 할당량(quota) 설정, 자동 로그 순환(rotation), 그리고 고주파 이벤트에 대한 속도 제한 등의 기술적 보호 조치가 필요합니다.

본 문서는 Codex CLI(버전 0.144.6) 환경에서 발생한 심각한 디스크 용량 고갈 문제에 대한 기술적 보고서입니다. 사용자는 codex resume를 통해 재개된 단일 부모 스레드로부터 무분별하게 생성된 하위 에이전트(Subagent) 세션이 약 755 GiB에 달하는 JSONL 로그 파일을 생성하여 시스템의 1.8 TiB 용량을 거의 전부 점유했음을 보고했습니다.

주요 현상 및 기술적 분석

  • 세션 폭증: 단일 부모 스레드(019ee8d1-94c0-7090-a65a-faeeab8c626d)가 2,393개의 하위 세션 파일을 생성했으며, 이들의 총 논리적 크기는 약 731.5 GiB에 달합니다.
  • 이벤트 증폭(Event Amplification): 특정 하위 세션은 단 3분 19초 동안 353,255개의 JSONL 레코드를 생성하였습니다. 특히 event_msg/token_count와 같은 텔레메트리성 이벤트가 과도하게 기록되는 현상이 관찰되었습니다.
  • 데이터 중복 및 비효율적 저장:
    • compacted 레코드와 custom_tool_call_output 레코드가 전체 세션 크기의 상당 부분을 차지합니다.
    • 데이터 압축이나 중복 제거 없이 상태 정보가 반복적으로 기록되어, 개별 파일이 400 MiB~900 MiB까지 비정상적으로 팽창했습니다.
    • history_mode: legacy 설정을 사용 중인 환경에서 세션 로그가 상위 스레드의 상태를 과도하게 계승하거나 복제하는 것으로 추정됩니다.

의심되는 고장 모드(Failure Modes)

  1. Child Event Fan-out: 부모 혹은 형제 세션의 이벤트가 모든 하위 세션의 JSONL 스트림으로 복제되는 현상.
  2. Unbounded Event Loop: 태스크 시작, 완료, 패치 적용, 토큰 카운트 등의 이벤트가 너무 빈번하게 발생하여 기록되는 문제.
  3. Compaction Persistence Amplification: 컴팩션(Compaction) 과정에서 이전 데이터를 참조하지 않고 전체 스냅샷을 반복적으로 기록하는 구조적 결함.
  4. Resume Lifecycle Leak: 재개된 프로세스가 작업 종료 후에도 하위 세션 생성을 멈추지 않거나 지속적으로 이벤트 구독을 유지하는 문제.

제안된 방어 기제

  • 저장소 쿼터(Storage Quota): 세션별 및 전역 단위의 로그 저장 제한 설정.
  • 로그 순환 및 압축(Rotation & Compression): 시간/용량 기반의 자동 로테이션 및 압축 정책 도입.
  • 데이터 중복 제거(Deduplication): 컴팩션 스냅샷 및 툴 출력 결과의 콘텐츠 기반 주소 지정(Content-addressing) 방식 적용.
  • 이벤트 병합(Coalescing): 고주파 텔레메트리 이벤트(예: token_count)에 대한 속도 제한 및 병합 처리.
  • 경고 메커니즘: 디스크 용량 임계값 도달 시 사용자 알림 및 로그 작성 일시 중지 기능 구현.

본 이슈는 codex-cli가 시스템의 안정성을 위협하는 수준으로 로컬 스토리지를 잠식하고 있으며, 이를 해결하기 위해 세션 지속성 관리 아키텍처의 근본적인 재검토가 필요함을 시사합니다.