작업1 — crowny-deacon 장부 스케일 근본수리
개요
crowny-deacon(deacon.crowny.org:9772) 티켓.psv가 75,744B(캡 초과)까지 자란 상태에서
①서버 조회가 장부 꼬리를 못 보는 무증상 오류(완료 티켓 재claim·신규 티켓 미발견)
②장부압축.한선이 65,535B 절단분만 압축·원자 rename → T72~T111 40 ID 유실(복구됨,
feedback_장부압축_65535절단_유실사고.md) 두 사고 재발을 근본 차단하는 3건 수리.
라이브 data/는 읽기만, 수정 없음 — 정리는 사용자 실행으로 별도 진행 중.
무엇을 했는지
1. 장부압축.한선 — 크기 게이트 + 안전 경로 + 자가검증
파일크기(경로):체계("(wc -c < ... ) 2>/dev/null")로 VM 읽기 캡과 무관하게 바이트 크기 확인.- 60,000B 초과 시 VM 읽기()를 완전히 우회하는 안전 경로(
압축하기_안전)로 전환 — perl이
_고유ID수_외부(경로): perl 기반 독립 오라클로 유니크 ID 수를 계산. VM 경로/안전 경로 양쪽
[중단] 자가검증 불일치 ... 출력, tmp 산출물 삭제, rename 안 함). 안전 경로는 추가로 tmp
파일 자체를 재검증한 뒤에만 원자 rename.
백업하기도읽기()+쓰기()대신cp -p로 교체 — 백업 자체가 65,535B에서 잘리던 구멍 제거.- 함정: perl
-ne '...' file1 file2형태는-n의 암묵<>다이아몬드가 두 번째 인자(출력경로)
$ARGV[1]이 불안정했음(실측, exit 1) → -e로 바꿔 open(my $in,...)
으로 입력파일을 직접 열도록 수정.2. 미션장부.한선 — 결과요약 300자 절단 + 전문 파일 참조
티켓기록3(유일한 실제 append 지점)에서_결과요약절단(티켓ID, 결과요약)경유:
data/보고/<티켓ID>.txt에 저장하고, 장부에는 300자 절단본 +
…[전문:<경로>] 참조만 기록. 300자 이하는 그대로 통과.3. 미션장부.한선 — 읽기 캡 가드
_PSV읽기(파일)에_장부캡점검(파일)추가: 60,000B 초과 시
체계("echo '[장부캡경고] ... ' >&2")로 stderr 경고 발령(파일당 1회, 맵으로 중복 억제).
무증상 캡 초과를 유증상으로 전환.E2E 검증 결과 (격리 사본, /private/tmp/.../scratchpad/작업1/)
- 75KB 장부 압축: 입력 75,744B, 유니크 ID 112개(perl 오라클) → 안전 경로 실행 →
diff 로 ID 집합
일치 확인(IDS_MATCH).
- 60KB 미만 회귀: 4,032B(61행, 20 ID×3버전) → 기존 VM 경로 → 20행, 20 ID, last-wins
- 결과요약 절단+참조: 1,500자 결과요약 입력 → 장부 저장값 407자(300+참조태그),
data/보고/T1.txt에 전문 1,500자 그대로 저장 확인. 300자 이하 입력은 그대로 통과 확인.컴파일: CROWNY_STRICT=1 hanseonc_high, stderr 2>/dev/null 분리(toau 오염 방지) —
장부압축.한선·미션장부.한선 모두 STRICT 0경고.
관련 파일
/Users/ef/crowny-deacon/장부압축.한선(수정, 배포 완료)/Users/ef/crowny-deacon/한선씨/미션장부.한선(수정, 배포 완료)- 컴파일 산출(검증용, 라이브 미교체):
/tmp/작업1-장부압축-LIVE.toau,/tmp/작업1-미션장부-LIVE.toau - 격리 검증 사본:
/private/tmp/claude-501/-Users-ef/2013923d-e997-42d7-a6e8-cac6215717b5/scratchpad/작업1/ - 사고 기록:
/Users/ef/.claude/projects/-Users-ef/memory/feedback_장부압축_65535절단_유실사고.md
잔여 이슈
- 라이브
/Users/ef/crowny-deacon/장부압축.toau는 아직 재빌드/재배포 안 됨 — 소스(.한선)만
hanseonc_high 장부압축.한선 > 장부압축.toau 재빌드 +
plist(bootout→압축→bootstrap) 사이클로 적용 필요(별도 승인 후 진행 권장, 이 작업 범위 밖).
- 라이브
data/티켓.psv(75,744B) 자체의 정리(압축 실행)는 사용자가 별도 진행 중 — 이 작업은
_장부캡_경고발령됨은 프로세스 메모리 내 맵이라 서버 재기동마다 리셋됨(의도된 동작 — 재기동