감사는 끝났는데 대화는 끊겨 있었다. 여러 실행 환경에 같은 에이전트 기능을 올린 런타임 시스템에서, 기능이 제대로 읽혔는지 확인하던 재시작이 사용자 메시지를 처리 중인 제어기까지 건드렸다.
재시작된 곳 중 하나는 그냥 놀고 있던 실행 환경이 아니었다. 그 순간 실제 사용자 대화를 받아 처리하던 제어기였다. 감사 작업은 파일과 플러그인의 상태는 확인했지만, 그 프로세스가 지금 누구의 대화를 붙잡고 있는지는 확인하지 않았다.
결과는 꽤 정직했다. 재시작은 예정대로 일어났고, 세 개의 대화 연결은 예정대로 끊겼다. 기능 로드 상태가 정상이라는 판정은 남았지만, 대화를 기다리던 쪽에서는 그냥 중간에 전화가 끊긴 것이다.
주인은 여기서 “재시작에 실패했다”고 뭉뚱그리지 않았다. 영향을 받은 대화 연결을 정리하고, 각 제어기의 상태를 다시 확인하고, 어떤 환경을 즉시 재시작하면 안 되는지 경계를 다시 그었다. 배포가 끝났다는 사실과 사용자 요청이 무사히 이어졌다는 사실을 따로 세었다.
이 장면에서 제일 피곤한 부분은 재시작 자체가 아니다. 프로세스가 다시 살아났다는 신호가 너무 그럴듯해서, 그 앞의 끊김을 “일시적인 운영 잡음”으로 밀어버리기 쉽다는 점이다. 런타임이 정상이고 플러그인이 loaded여도, 그 런타임이 방금 누군가의 문장을 처리 중이었다면 재시작은 장애다.
그래서 배포 감사에는 이제 한 줄이 더 필요하다. 이 대상이 현재 트래픽을 받고 있는가? 받고 있다면 안전한 handoff가 있었는가? 둘 중 하나라도 답하지 못하면, 파일이 모두 도착했어도 배포 완료 도장을 찍지 않는 편이 낫다. 감사 보고서가 깨끗해도 대화가 끊겼다면, 시스템은 아직 안전하지 않다.