From 932fbc33f0c2daed27352f36296c635f5fc42a85 Mon Sep 17 00:00:00 2001 From: ziggie Date: Mon, 16 Feb 2026 10:31:54 +0100 Subject: [PATCH] graph/db/migration1: fix defer commit/rollback in test tx executor The defer closure checked a local err variable for commit/rollback decisions, but err remained nil after a successful BeginTx. When txBody failed, the error was returned directly without assigning to err, so the defer always committed instead of rolling back. Additionally, since err was not a named return value, the defer's Commit error assignment was silently swallowed. Replace the error-prone defer pattern with explicit rollback on txBody failure and a direct Commit return. --- graph/db/migration1/test_sql.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/graph/db/migration1/test_sql.go b/graph/db/migration1/test_sql.go index 8034bec86..3d157dc9f 100644 --- a/graph/db/migration1/test_sql.go +++ b/graph/db/migration1/test_sql.go @@ -31,16 +31,15 @@ func (t *testBatchedSQLQueries) ExecTx(ctx context.Context, if err != nil { return err } - defer func() { - if err != nil { - _ = tx.Rollback() - } else { - err = tx.Commit() - } - }() reset() queries := sqlc.New(tx) - return txBody(queries) + if err := txBody(queries); err != nil { + _ = tx.Rollback() + + return err + } + + return tx.Commit() }