채팅 메시지가 순서대로 처리되지 않음

가끔 사용자가 메시지를 보내면 이미 채팅에 게시된 다른 메시지 위에 표시되는 것을 발견했습니다. 반면, 어떤 경우에는 사용자가 메시지를 보내면 더 새로운 메시지가 전송되더라도 해당 메시지가 채팅 맨 아래에 고집스럽게 붙어 있는 경우도 있습니다.

조사를 해 본 결과, 유일한 단서는 PR #34592입니다. 이 PR은 문제가 발생하기 시작한 8월 말/9월 초쯤에 병합되었습니다. 클라이언트의 시간을 메시지의 타임스탬프로 사용할 수 있게 해 주므로, 우리가 겪고 있는 일부 문제의 설명으로 잘 맞아떨어질 것 같습니다. 다만 몇 가지 맞지 않는 부분이 있어 PR이 직접적인 원인인지 100% 확신은 없지만, 조사하기에 좋은 출발점이 될 것 같습니다.

완전히 명확히 하자면, 이 문제는 제 환경에서만 발생하는 것이 아닙니다. 채팅에서 모든 사용자에게 메시지가 잘못된 순서로 표시됩니다.

이 문제를 조사하는 데 도움이 될 수 있는 우리가 관찰한 추가 사항은 다음과 같습니다:

  • 이 버그는 결정론적이지 않으며, 항상 발생하는 것은 아닙니다. 하지만 발생하면 특정 사용자와 그 사용자의 모든 메시지와 관련된 경우가 많습니다. 예를 들어, 사용자의 모든 메시지가 말하자면 "과거"나 "미래"에 전송된 것처럼 (즉, 더 오래된 메시지보다 앞서거나, 더 새로운 메시지보다 뒤에) 표시되는 경우입니다.
  • 몇몇 특정 사용자에게서 더 일관되게 발생하는 것 같습니다. 이는 특정 라우팅이나 사용자별 지연 시간(latency)과 관련이 있을 수 있음을 시사합니다.
  • 사용자가 채팅에서 보고 있는 메시지에 직접 답장을 보낼 수 있지만, 답장은 여전히 답장하는 대상 메시지 이전에 발생한 것으로 기록됩니다. 이로 인해 다음과 같은 매우 기이한 상황이 발생합니다:

3개의 좋아요

정말 훌륭한 보고서네요. 이렇게 작성해 주셔서 정말 감사드립니다.

해당 팀에 알려두겠습니다. 그러면 팀에서 우선순위를 적절히 설정할 수 있을 것입니다.

5개의 좋아요

네, 이 문제는 바로 이 PR로 해결하려는 것이었고, 많은 경우 실제로 해결된다고 여전히 생각합니다. 하지만 당신의 보고서를 통해 이 논리에 결함이 있을 수 있음을 보여줄 수 있습니다.

앞으로 몇 주 안에 조사를 해보겠습니다. 감사합니다.

3개의 좋아요