Я заметил, что иногда, когда пользователь отправляет сообщение, оно появляется выше уже отправленных сообщений в чате. С другой стороны, иногда происходит наоборот: пользователь отправляет сообщение, и оно упрямо остаётся внизу чата, даже когда отправляются новые сообщения.
Я провёл небольшое расследование, и единственная реальная зацепка, которую я нашёл, — это PR #34592, который был объединён примерно в то время, когда мы начали сталкиваться с этой проблемой: конец августа — начало сентября. Я думаю, что это связано, так как он позволяет использовать время клиента в качестве временных меток для сообщений, и это хорошо объясняет некоторые из наших проблем. Однако я не уверен на сто процентов, что PR действительно связан, поскольку есть некоторые странности, которые не совсем сходятся, но, думаю, это хорошее место для начала поиска.
Чтобы быть совершенно ясным, это проблема не только на моей стороне: сообщения отображаются в неправильном порядке для ВСЕХ пользователей чата.
Вот ещё несколько наблюдений, которые могут помочь в расследовании этой проблемы:
- Эта ошибка совершенно недетерминирована: она возникает только иногда, но когда происходит, то обычно затрагивает конкретных пользователей и все их сообщения. Например, все сообщения пользователя могут отправляться «в прошлое» или «в будущее» (то есть перед более старыми сообщениями или после более новых).
- Кажется, что это чаще и стабильнее происходит с несколькими конкретными пользователями, что может означать связь с конкретной маршрутизацией или задержками у разных пользователей.
- Кто-то может ответить напрямую на сообщение, которое видит в чате, но ответ всё равно будет зарегистрирован как произошедший ДО сообщения, на которое он отвечает, что приводит к очень странным ситуациям, как в этом примере:
