Skip to content

Commit

Permalink
fix(ledgerwatch#4543): ensure BeginRo is followed by tx.Rollback()
Browse files Browse the repository at this point in the history
  • Loading branch information
revitteth committed Jul 13, 2022
1 parent 3ae19b4 commit 5bc5cb4
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 1 deletion.
11 changes: 11 additions & 0 deletions cmd/rpctest/rpctest/account_range_verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,22 @@ func CompareAccountRange(logger log.Logger, erigonURL, gethURL, tmpDataDir, geth
}

tgTx, err := resultsKV.BeginRo(context.Background())
defer func() {
if tgTx != nil {
tgTx.Rollback()
}
}()
if err != nil {
log.Error(err.Error())
return
}

gethTx, err := gethKV.BeginRo(context.Background())
defer func() {
if gethTx != nil {
gethTx.Rollback()
}
}()
if err != nil {
log.Error(err.Error())
return
Expand Down
2 changes: 1 addition & 1 deletion cmd/sentry/sentry/sentry_multi_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -398,10 +398,10 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac
if cs.Hd.POSSync() {
sort.Sort(headerdownload.HeadersReverseSort(csHeaders)) // Sorting by reverse order of block heights
tx, err := cs.db.BeginRo(ctx)
defer tx.Rollback()
if err != nil {
return err
}
defer tx.Rollback()
penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, ConvertH512ToPeerID(peerID))
if err != nil {
return err
Expand Down
1 change: 1 addition & 0 deletions cmd/state/commands/state_root.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ func StateRoot(genesis *core.Genesis, logger log.Logger, blockNum uint64, datadi
if tx, err = db.BeginRo(ctx); err != nil {
return err
}
defer tx.Rollback()
if rwTx, err = db.BeginRw(ctx); err != nil {
return err
}
Expand Down
2 changes: 2 additions & 0 deletions rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ func txDeferRollback(m dsl.Matcher) {
`$tx, $err = $db.BeginRw($ctx); $chk; $rollback`,
`$tx, $err := $db.Begin($ctx); $chk; $rollback`,
`$tx, $err = $db.Begin($ctx); $chk; $rollback`,
`$tx, $err = $db.BeginRo($ctx); $chk; $rollback`,
`$tx, $err := $db.BeginRo($ctx); $chk; $rollback`,
).
Where(!m["rollback"].Text.Matches(`defer .*\.Rollback()`)).
//At(m["rollback"]).
Expand Down

0 comments on commit 5bc5cb4

Please sign in to comment.