메일 IdP 문자열 누수 방어 배선
개요
전 서비스 정본 IdP인 크라우니메일서버(mail.crowny.org:9610)에 문자열핸들 GC 미배선(exit43 위험) 발견 → 배선.
무엇을 했는지
/Users/ef/crowny-mail/크라우니메일서버.한선
원장 리플레이(_원장리플레이()) 완료 직후, 시드/리플레이 분기 이후에 문자열보호() 1회 호출 추가
(리플레이가 만든 유저/메일 문자열까지 보호 범위에 포함되도록 리플레이 뒤에 배치)
메인 accept 루프에 _메일요청카운트 전역 카운터 추가, 200요청마다 문자열GC() 호출
(top-level 루프 스칼라 재대입이라 "함수 내부 전역 bare 재대입 무한재귀" 함정 회피 — 클라우드관리.한선 기존 패턴과 동일 형태)
컴파일/배포
./hanseonc_high 크라우니메일서버.한선 > 크라우니메일서버.toau — STRICT 경고 0, exit 0
- launchd(com.crowny.mail)가 프로세스 kill 즉시 새 .toau로 자가치유 재기동 확인
검증
- 재기동 후 kps 로그인 +
/api/auth/verify 200 정상 (role=admin 확인)
- 부하시험.sh
/api/auth/verify 500req·동시20:
| | 처리량 | p50 | p95 | 판정 |
|---|---|---|---|---|
| 수리 전 | 84.5 req/s | 197ms | 419ms | 티 |
| 수리 후 | 154.8 req/s | 114ms | 164ms | 티 |
(핸들% 게이지는 0/0 표시 — 부하시험.sh가 참조하는 통계 엔드포인트 미노출 추정, 별도 확인 필요)
- 타 서비스(9611, 9770) 생존 확인, crownyc 프로세스 158개 그대로
관련 파일
- /Users/ef/crowny-mail/크라우니메일서버.한선
- /Users/ef/crowny-mail/크라우니메일서버.toau
- /Users/ef/crowny-services/도구/부하판정.한선
- /Users/ef/crowny-services/도구/부하시험.sh
잔여 이슈
- 부하시험.sh의 핸들% 측정치가 항상 0으로 나옴 — 실제 문자열핸들 게이지를 어디서 읽는지 확인 필요(장기 소크 테스트로 별도 검증 권장, 200요청 단발 소크로는 GC 트리거가 1회뿐이라 누수 방지 효과가 명확히 드러나지 않음)
- 200요청 임계값은 클라우드관리.한선 선례를 따른 값 — 메일 트래픽 패턴에 맞춰 추후 튜닝 여지