MongooseIM
MongooseIM copied to clipboard
Duplicated messages in mam_message table
MongooseIM version: 6.2.1 Installed from: Docker image Erlang/OTP version: provided by the docker image
In case this is relevant: I am using JWT authentication
I am essentially facing the problem described in #4128.
On some occasions, all the messages of a conversation received by a user get duplicated in database in the mam_message
table. This does not happen consistently (was not able to describe a reproducing scenario yet), and happens only when stream management is enabled and I think this happens when one of the users requests the conversation history. This makes me think there is a bug when there is a problem in delivering the history response that triggers a duplication of the history in DB.
When this happens for a user, it is likely to happen again soon, often resulting in dozens of copies of all received messages in the conversation. All the messages (same origin_id) are identical except for the timestamp, which seems to be the time when the duplication occured.
So for example if a user received a single message in a conversation, and the bug occurs 3 times for that conversation, you would see something like the below in the mam_message
table:
id | origin_id | direction | timestamp (extracted from mongooseimctl)
1 | message-id-1 | I | 2024-07-04 14:53:42
2 | message-id-1 | I | 2024-07-04 14:55:12
3 | message-id-1 | I | 2024-07-04 15:03:27
4 | message-id-1 | I | 2024-07-04 15:03:27
5 | message-id-1 | I | 2024-07-04 18:25:51
6 | message-id-1 | I | 2024-07-04 18:25:51
7 | message-id-1 | I | 2024-07-04 18:25:51
8 | message-id-1 | I | 2024-07-04 18:25:51