From 92983b7f5cd5a07903f875ce9a0204765f24315d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 5 Jan 2025 17:16:52 -0800 Subject: [PATCH 1/3] Add missing transaction when set merge --- services/pull/check.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/services/pull/check.go b/services/pull/check.go index 736be4611bedd..7d17c847f508e 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -301,12 +301,23 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { pr.Merger = merger pr.MergerID = merger.ID + ctx, commiter, err := db.TxContext(ctx) + if err != nil { + log.Error("%-v db.TxContext: %v", pr, err) + return false + } + defer commiter.Close() if merged, err := pr.SetMerged(ctx); err != nil { log.Error("%-v setMerged : %v", pr, err) return false } else if !merged { return false } + if err := commiter.Commit(); err != nil { + log.Error("%-v commiter.Commit: %v", pr, err) + return false + } + commiter.Close() notify_service.MergePullRequest(ctx, merger, pr) From 6fec27f59e2f411d5b9d3e6d31ee7d230a130d7d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 5 Jan 2025 17:19:01 -0800 Subject: [PATCH 2/3] Fix typo --- services/pull/check.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/pull/check.go b/services/pull/check.go index 7d17c847f508e..56631b1d1c94a 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -301,23 +301,23 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { pr.Merger = merger pr.MergerID = merger.ID - ctx, commiter, err := db.TxContext(ctx) + ctx, committer, err := db.TxContext(ctx) if err != nil { log.Error("%-v db.TxContext: %v", pr, err) return false } - defer commiter.Close() + defer committer.Close() if merged, err := pr.SetMerged(ctx); err != nil { log.Error("%-v setMerged : %v", pr, err) return false } else if !merged { return false } - if err := commiter.Commit(); err != nil { - log.Error("%-v commiter.Commit: %v", pr, err) + if err := committer.Commit(); err != nil { + log.Error("%-v committer.Commit: %v", pr, err) return false } - commiter.Close() + committer.Close() notify_service.MergePullRequest(ctx, merger, pr) From d483c76acc99e60989b0c1b2e0c9ae83f169da78 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 5 Jan 2025 21:06:17 -0800 Subject: [PATCH 3/3] Use db.WithTx for database transaction --- services/pull/check.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/services/pull/check.go b/services/pull/check.go index 56631b1d1c94a..baca1511a2a39 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -301,23 +301,17 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { pr.Merger = merger pr.MergerID = merger.ID - ctx, committer, err := db.TxContext(ctx) - if err != nil { - log.Error("%-v db.TxContext: %v", pr, err) - return false - } - defer committer.Close() - if merged, err := pr.SetMerged(ctx); err != nil { + if err := db.WithTx(ctx, func(ctx context.Context) error { + if merged, err := pr.SetMerged(ctx); err != nil { + return err + } else if !merged { + return errors.New("setMerged failed") + } + return nil + }); err != nil { log.Error("%-v setMerged : %v", pr, err) return false - } else if !merged { - return false - } - if err := committer.Commit(); err != nil { - log.Error("%-v committer.Commit: %v", pr, err) - return false } - committer.Close() notify_service.MergePullRequest(ctx, merger, pr)