Skip to content

Commit b5d6e2a

Browse files
committed
Revert "handletelegram: do portal re-id in background"
This reverts commit 37d34a4.
1 parent 37d34a4 commit b5d6e2a

File tree

1 file changed

+25
-31
lines changed

1 file changed

+25
-31
lines changed

pkg/connector/handletelegram.go

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -549,36 +549,31 @@ func (t *TelegramClient) handleServiceMessage(ctx context.Context, msg *tg.Messa
549549
log.Debug().
550550
Str("old_portal_id", string(eventMeta.PortalKey.ID)).
551551
Int64("channel_id", action.ChannelID).
552-
Msg("Received chat migrate action message")
553-
// TODO this shouldn't really be in a goroutine, but it seems like there's a deadlock somewhere
554-
// if there's a CreateMatrixRoom call ongoing at the same time as migrateChat
555-
// (guessing it's actually the GetChatInfo call that's getting stuck, but not sure)
556-
go func() {
557-
newPortalKey := t.makePortalKeyFromID(ids.PeerTypeChannel, action.ChannelID, 0)
558-
if err := t.migrateChat(ctx, eventMeta.PortalKey, newPortalKey); err != nil {
559-
log.Err(err).Msg("Failed to migrate chat to channel")
560-
return
561-
}
562-
t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.Message[any]{
563-
EventMeta: eventMeta.
564-
WithPortalKey(newPortalKey).
565-
WithStreamOrder(0).
566-
WithType(bridgev2.RemoteEventMessage),
567-
ID: ids.GetMessageIDFromMessage(msg),
568-
ConvertMessageFunc: func(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI, data any) (*bridgev2.ConvertedMessage, error) {
569-
return &bridgev2.ConvertedMessage{
570-
Parts: []*bridgev2.ConvertedMessagePart{{
571-
Type: event.EventMessage,
572-
Content: &event.MessageEventContent{
573-
MsgType: event.MsgNotice,
574-
Body: "Upgraded this group to a supergroup",
575-
},
576-
}},
577-
}, nil
578-
},
579-
})
580-
}()
581-
return nil
552+
Msg("MessageActionChatMigrateTo")
553+
newPortalKey := t.makePortalKeyFromID(ids.PeerTypeChannel, action.ChannelID, 0)
554+
if err := t.migrateChat(ctx, eventMeta.PortalKey, newPortalKey); err != nil {
555+
log.Err(err).Msg("Failed to migrate chat to channel")
556+
return err
557+
}
558+
res := t.main.Bridge.QueueRemoteEvent(t.userLogin, &simplevent.Message[any]{
559+
EventMeta: eventMeta.
560+
WithPortalKey(newPortalKey).
561+
WithStreamOrder(0).
562+
WithType(bridgev2.RemoteEventMessage),
563+
ID: ids.GetMessageIDFromMessage(msg),
564+
ConvertMessageFunc: func(ctx context.Context, portal *bridgev2.Portal, intent bridgev2.MatrixAPI, data any) (*bridgev2.ConvertedMessage, error) {
565+
return &bridgev2.ConvertedMessage{
566+
Parts: []*bridgev2.ConvertedMessagePart{{
567+
Type: event.EventMessage,
568+
Content: &event.MessageEventContent{
569+
MsgType: event.MsgNotice,
570+
Body: "Upgraded this group to a supergroup",
571+
},
572+
}},
573+
}, nil
574+
},
575+
})
576+
return resultToError(res)
582577

583578
case *tg.MessageActionTopicCreate:
584579
channelPeer, _ := msg.PeerID.(*tg.PeerChannel)
@@ -789,7 +784,6 @@ func (t *TelegramClient) updateChannel(ctx context.Context, channel *tg.Channel)
789784
}
790785

791786
// TODO resync portal metadata?
792-
// (actually don't, that might cause deadlocks if done while the portal is fetching its own info for creation)
793787

794788
if !channel.Broadcast {
795789
return nil, nil

0 commit comments

Comments
 (0)