28 lines
601 B
Diff
28 lines
601 B
Diff
|
From 451912074ba1ba4000c66874876bc0a6b64cb5da Mon Sep 17 00:00:00 2001
|
||
|
From: Kelo <meetkelo@outlook.com>
|
||
|
Date: Sun, 30 Oct 2022 16:49:22 +0800
|
||
|
Subject: [PATCH] fix: do not rollback closed transaction
|
||
|
|
||
|
---
|
||
|
service/db/boltdb.go | 3 +--
|
||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||
|
|
||
|
--- a/db/boltdb.go
|
||
|
+++ b/db/boltdb.go
|
||
|
@@ -56,14 +56,13 @@ func Transaction(db *bbolt.DB, fn func(*
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
- defer tx.Rollback()
|
||
|
dirty, err := fn(tx)
|
||
|
if err != nil {
|
||
|
_ = tx.Rollback()
|
||
|
return err
|
||
|
}
|
||
|
if !dirty {
|
||
|
- return nil
|
||
|
+ return tx.Rollback()
|
||
|
}
|
||
|
return tx.Commit()
|
||
|
}
|