reactions: fix db race when handling reactions on newly received old messages (#100)

This commit is contained in:
Adam Van Ymeren
2025-04-25 13:19:50 -07:00
committed by GitHub
parent 53e89441b7
commit eb5ae65402
2 changed files with 4 additions and 13 deletions
+2 -11
View File
@@ -111,15 +111,6 @@ func (t *TelegramClient) handleTelegramReactions(ctx context.Context, msg *tg.Me
Int("message_id", msg.ID).
Logger()
dbMsg, err := t.main.Bridge.DB.Message.GetFirstPartByID(ctx, t.loginID, ids.GetMessageIDFromMessage(msg))
if err != nil {
log.Err(err).Msg("failed to get message from database")
return
} else if dbMsg == nil {
log.Warn().Msg("message not found in database")
return
}
reactionsList, isFull, customEmojis, err := t.computeReactionsList(ctx, msg.PeerID, msg.ID, msg.Reactions)
if err != nil {
log.Err(err).Msg("failed to compute reactions list")
@@ -163,9 +154,9 @@ func (t *TelegramClient) handleTelegramReactions(ctx context.Context, msg *tg.Me
LogContext: func(c zerolog.Context) zerolog.Context {
return c.Int("message_id", msg.ID)
},
PortalKey: dbMsg.Room,
PortalKey: t.makePortalKeyFromPeer(msg.PeerID),
},
TargetMessage: dbMsg.ID,
TargetMessage: ids.GetMessageIDFromMessage(msg),
Reactions: &bridgev2.ReactionSyncData{Users: users, HasAllUsers: isFull},
})
}
+2 -2
View File
@@ -135,8 +135,6 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, entities tg.Ent
sender := t.getEventSender(msg, isBroadcastChannel)
go t.handleTelegramReactions(ctx, msg)
if media, ok := msg.GetMedia(); ok && media.TypeID() == tg.MessageMediaContactTypeID {
contact := media.(*tg.MessageMediaContact)
// TODO update the corresponding puppet
@@ -164,6 +162,8 @@ func (t *TelegramClient) onUpdateNewMessage(ctx context.Context, entities tg.Ent
Data: msg,
ConvertMessageFunc: t.convertToMatrixWithRefetch,
})
t.handleTelegramReactions(ctx, msg)
case *tg.MessageService:
sender := t.getEventSender(msg, false)