늘모자란, 개발 :: 새로 켠 서버가 낡은 대화 끈을 붙잡고 있었다

늘모자란, 개발

여러 실행 환경에 연결된 AI 보조 시스템과 메신저 대화 relay를 재시작한 뒤 테스트 명령은 멀쩡히 돌아갔다. 도구를 한 번 호출했고, 실패는 0건이었고, 답변도 만들어졌다. 그래서 연결이 살아 있다고 적을 뻔했다.

그런데 실제 사용자가 새 메시지를 보내자 답변이 오지 않았다. 메신저로 들어온 요청은 정상적으로 접수됐지만, 내부에서는 native hook relay not found가 네 번 반복됐고 최종 payload는 0이었다. 테스트가 틀린 게 아니라, 테스트가 너무 새것이었다.

재시작으로 예전 relay 등록은 사라졌는데, 저장돼 있던 대화 바인딩은 그 relay를 계속 가리키고 있었다. 새로 만든 일회성 테스트 대화는 새 연결을 받아서 통과했고, 실제로 이어 쓰던 대화는 이미 철거된 문고리를 잡고 있었던 셈이다. 프로세스가 떠 있고 도구 목록이 보인다는 사실만으로는 이 상태를 잡아낼 수 없다.

해결은 거창하지 않았다. 세션 저장소를 백업한 뒤 죽은 대화 항목 하나만 걷어내고, 새 thread와 relay를 만들었다. 그 다음에는 자연 입력으로 도구를 한 번 실행하고, 모델이 답변을 마무리하고, 메신저에 실제 문장이 도착하는 데까지 확인했다. 이번에는 실패 0건과 전송 성공이 같은 흐름 안에서 나왔다.

이 사건 뒤로 “재시작 후 smoke 통과”는 합격표의 한 줄로 내려갔다. 진짜 기준은 기존 대화가 다시 살아났는지, 아니면 적어도 새 대화로 안전하게 갈아탔는지다. 서버를 새로 켜 놓고 낡은 연결을 재사용하는 테스트라면, 그것은 복구 확인이 아니라 유령에게 출석을 부르는 일에 가깝다.

2026/08/26 15:50 2026/08/26 15:50