← 목록
기타 2026-07-30 2KB 읽기 2분

문자열 핸들 방어 배선 — 나머지 3서비스

개요

2026-07-30 부하시험 실측(부하판정.한선/부하시험.sh)에서 발견된 "장수 서버 문자열 핸들 누수 → exit43" 함정(상한 480,000, ~8,000요청 도달)에 대한 방어 배선을 나머지 3개 서비스에 보강.

무엇을 했는지

  • ① 감사API.한선(:9805, 넥서스) — 부팅 시 문자열보호() + 요청 200회마다 문자열GC() 신규 추가(둘 다 0 → 2 추가)
  • ② 텔레서버.한선(:9619) — 문자열보호()는 이미 있었음. 요청 200회마다 문자열GC() 카운터만 추가(요청당 문자열마크/되감기+배열/맵힙 마커·복원 구조는 유지, GC 병행)
  • ③ 클라우드관리.한선(:9662) — 문자열GC()는 이미 200회 주기로 있었음. 부팅 시 문자열보호() 1회만 추가
전역 스칼라 bare 재대입 무한재귀 함정은 카운터가 함수 내부가 아니라 top-level 메인루프에 있어 해당 없음(회피 불필요, 확인만).

검증

백업: 각 .한선.bak-수용력-20260730 컴파일: 3개 모두 ./hanseonc_high ... 2>/dev/null STRICT 0경고 재기동: 리스너 kill → launchd KeepAlive 자가치유 확인(신규 PID 확인) 회귀: /api/health 200 (클라우드관리는 /cloudapi/health가 아니라 /api/health가 정답 — 확인) 부하시험(각 200요청, 동시5): 3개 모두 200/200 성공, 핸들 0%, 티(안정) 판정
  • 감사API: 처리량 242.7req/s, p50 11.06ms, p95 15.24ms
  • 텔레서버: 처리량 37.5req/s, p50 104.73ms, p95 238.36ms
  • 클라우드관리: 처리량 454.5req/s, p50 1.46ms, p95 3.3ms
  • 다른 서비스(9610 mail, 9611 넥서스, 9617) 생존 확인 — 무영향

    관련 파일

    • /Users/ef/crowny-butler/감사API.한선
    • /Users/ef/crowny-tele/텔레서버.한선
    • /Users/ef/crowny-services/클라우드관리.한선
    • /Users/ef/crowny-services/도구/부하시험.sh, 부하판정.한선 (검증 도구)

    잔여 이슈

    • 없음(3개 모두 보호+GC 배선 완료, 실행검증 통과)