Files
gravity_control/docs/devlog/entries/20260324-001.md

1.3 KiB

v0.5.6 좀비 커넥션 패치 회귀 오류 해결 (v0.5.8 반영)

  • 시간: 2026-03-23 23:10 ~ 2026-03-24 07:05
  • Commit: TBD
  • Vikunja: 신규 추가 예정

결정 사항

  • False Positive 멈춤 현상 원인 규명: v0.5.6에서 추가된 pongTimeoutTimer (10초 타임아웃)가 VS Code 확장 내부의 일시적인 Event Loop 블로킹 발생 시 네트워크 I/O(pong 응답)보다 먼저 소켓을 강제 종료하고 있었습니다. 이 때문에 멀쩡한 연결이 끊어지고 재연결 지연 페널티가 누적되어 최대 60초까지 응답 불가(멈춤) 상태에 빠지는 현상이 발견되었습니다.
  • 해결 방안 선택 (타임스탬프 검증): 타이머 동시성 경합을 유발하는 setTimeout 방식을 전면 폐기하고, 기존의 setInterval (25초 주기) 하트비트 루프 내부에서 ws.on('pong')이 갱신하는 lastPongTime을 대조(Date.now() - lastPongTime > 60000)하는 방식으로 변경했습니다. 이를 통해 Event Loop가 지연되더라도 I/O 이벤트를 먼저 수확한 후에 안전하게 판독할 수 있어 오진단(False Positive)을 원천 차단하면서도 좀비 커넥션을 방지했습니다.

미완료

  • 없음 (v0.5.8 VSIX 컴파일 성공 및 배포 완료)