From d11e9dfa5ebfd5e02b59585e376bc7f394753ea4 Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Thu, 24 Mar 2022 16:18:44 +0100 Subject: [PATCH] Try to rollback in case of error --- roomserver/internal/perform/perform_leave.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/roomserver/internal/perform/perform_leave.go b/roomserver/internal/perform/perform_leave.go index acab25a42..b10fb70a1 100644 --- a/roomserver/internal/perform/perform_leave.go +++ b/roomserver/internal/perform/perform_leave.go @@ -228,10 +228,13 @@ func (r *Leaver) performFederatedRejectInvite( util.GetLogger(ctx).WithError(err).Errorf("failed to get MembershipUpdater, still retiring invite event") } if updater != nil { - if _, err := updater.SetToLeave(req.UserID, eventID); err != nil { + if _, err = updater.SetToLeave(req.UserID, eventID); err != nil { util.GetLogger(ctx).WithError(err).Errorf("failed to set membership to leave, still retiring invite event") + if err = updater.Rollback(); err != nil { + util.GetLogger(ctx).WithError(err).Errorf("failed to rollback membership leave, still retiring invite event") + } } else { - if err := updater.Commit(); err != nil { + if err = updater.Commit(); err != nil { util.GetLogger(ctx).WithError(err).Errorf("failed to commit membership update, still retiring invite event") } }