- Diantar
- 27 September 2026 pukul 06.14 UTC
- Pengarang
- Kamo
- Kommit
- 279a389
Percakapan telah gagal dalam dua cara pemberitahuan anggota sekaligus: membuka percakapan menunjukkan "Tidak dapat memuat pesan" sampai Retry ditekan, dan mengirim pesan kadang-kadang tidak pernah tiba. Keduanya MediaService menjawab 500 dengan Yugabita DB SQLState 40001, "Baca ulang diperlukan" - log harian pada kedua pod, dan setiap 500 BFF web dicatat minggu ini baris dengan satu. Yugabyte mengulang bacaan secara gratis hanya ketika pernyataan pertama dari transaksinya. The riwayat beban cek akses pada pernyataan ketiga dengan membaca baris keanggotaan pemanggil - baris yang membuka tanda percakapan dibaca dalam sekejap yang sama. Sebuah kirim menulis pesan dan kemudian membaca daftar dan domain org dalam transaksi yang sama. Entah membaca pertemuan baris menulis sesaat sebelumnya gagal seluruh permintaan; sesaat kemudian menulis telah diselesaikan, yang mengapa Retry selalu bekerja. - Permintaan jendela obrolan (kirim, riwayat, tanda baca, daftar obrolan, sunting, wajah, anggota, tanda terima) membawa @ RetryOnDbKonflik, dan catch- alls mereka membiarkan konflik keluar * * * * * * * * * * * * * sehingga penasihat dapat kembali menjalankannya dalam transaksi NEW. Ditelan menjadi 500 itu terlihat kembali. Aman: segala sesuatu yang mengirim pengumuman setelah-komit. - Mark- baca tidak lagi menulis ulang baris keanggotaan ketika penunjuk sudah ada (ChatReadPointerRepositori, UPDATE yang dijaga). Itu disebut beberapa kali per terbuka, dan setiap menulis ulang adalah kesempatan untuk beban sejarah anggota sendiri atau mengirim untuk gagal. Tanda terima yang dibaca masih keluar seperti sebelumnya. - Kiriman A dapat membawa MessageId klien (ChatSendLedger, Redis): a retry of a sent that already berkomitmen dijawab dengan panggilan kirim, dan satu masih dalam penerbangan dengan 409 Kirim _ IN _ PROGRESS, sehingga klien dapat mencoba kembali tanpa pernah posting pesan dua kali. Gagal terbuka. Sebuah ratchet * * * * * * * * * * * * * memegang setiap penanganan percakapan transaksional ke Coba lagi, dan coba lagi untuk menangkap yang memungkinkan konflik keluar. MediaControllerDbConflictTest replays kegagalan produksi melalui proksi nyata: upaya konflik gulungan kembali, kedua transaksi dilakukan sekali, dan tidak ada yang diumumkan untuk upaya yang gagal. 1384 tes lulus.
