- Verschickt
- 27. September 2026 um 06:14 UTC
- Autor
- Kamo
- Commit
- 279a389
Chat hat in zweierlei Hinsicht ein Mitglied Mitteilungen auf einmal versagt: Öffnen eines Gesprächs zeigte "Könnte keine Nachrichten laden", bis Retry gedrückt wurde und eine gesendete Nachricht manchmal nie ankam. Beide waren MediaService Antwort 500 mit YugabyteDB SQLState 40001, "Neustart lesen erforderlich" täglich auf beiden Pods angemeldet, und jeder 500 der Web-BFF aufgezeichnet in dieser Woche stellt sich mit einem. Yugabyte startet eine Lektüre kostenlos nur, wenn es die ERSTE Erklärung seiner Transaktion ist. Die History Load überprüft den Zugriff auf seine dritte Erklärung durch das Lesen der Mitgliederzeile des Anrufers Zeile, dass das Öffnen der Konversation markiert im gleichen Augenblick gelesen. Ein Senden schreibt die Nachricht und dann liest der Dienstplan und die Org-Domain in der gleichen Transaktion. Entweder lesen Treffen eine Reihe einen Augenblick zuvor nicht die ganze Anfrage geschrieben; einen Moment später hatte sich das Schreiben erledigt, das ist warum Retry immer funktioniert hat. - Die Anfragen des Chatfensters (Sende, Geschichte, Mark-Reading, Chat-Liste, Bearbeitung, Gesichter, Mitglieder, Quittungen) tragen @RetryOnDbConflict, und ihre Catch-alls lassen einen Konflikt aus ************, damit der Berater es in einer NEUEN Transaktion nachführen kann. Verschlucken in einen 500 war es für den Wiederan Versuch unsichtbar. Sicher: Alles, was ein Senden ankündigt, ist nach der Verpflichtung. - Mark-Lesung schreibt die Mitgliederreihe nicht mehr um, wenn der Hinweis bereits da ist (ChatReadPointerRepository, ein bewachtes UPDATE). Es wurde mehrmals pro geöffnet genannt, und jede Neufassung war eine Chance für die eigene Geschichte Last oder senden zu scheitern. Die Lesequittung Er geht immer noch raus wie bisher. - Ein Senden kann einen Client tragenMessageId (ChatSendLedger, Redis): ein erneuter Vortritt eines Sendens, der bereits verpflichtet wird mit dieser Antwort des Sendens beantwortet, und eine noch im Flug mit 409 SEND_IN_PROGRESS, so dass der Client erneut versuchen kann, ohne jemals eine Nachricht zweimal zu posten. Failiert offen. Eine Ratsche ************ hält jeden @Transactional Chat-Handler zum Versuchen Sie, und die erneute Versuch, einen Haken, der den Konflikt aus lässt. MediaControllerDbConflictTest Wiederholungen das Produktionsausfall durch einen echten Stellvertreter: der konfliktbeladene Versuch rollt zurück, ein zweiter Transaktionszusagen einmal, und nichts wird für den Versuch angekündigt, der fehlgeschlagen ist. 1384 Tests bestehen.
