From b8e0ac637735da6daddbaf1a863354e9209605d9 Mon Sep 17 00:00:00 2001 From: Egon Elbre Date: Mon, 3 Jun 2019 17:37:43 +0300 Subject: [PATCH] satellitedb/overlaycache: avoid tx leak in case of error (#2095) --- satellite/satellitedb/overlaycache.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/satellite/satellitedb/overlaycache.go b/satellite/satellitedb/overlaycache.go index 9884f6c89..c9dd59f80 100644 --- a/satellite/satellitedb/overlaycache.go +++ b/satellite/satellitedb/overlaycache.go @@ -564,7 +564,7 @@ func (cache *overlaycache) CreateStats(ctx context.Context, nodeID storj.NodeID, // however we've seen from some crashes that it does. We need to track down the cause of these crashes // but for now we're adding a nil check to prevent a panic. if dbNode == nil { - return nil, Error.Wrap(errs.New("unable to get node by ID: %s", nodeID.String())) + return nil, Error.Wrap(errs.Combine(errs.New("unable to get node by ID: %v", nodeID), tx.Rollback())) } return getNodeStats(dbNode), Error.Wrap(tx.Commit()) } @@ -627,7 +627,7 @@ func (cache *overlaycache) UpdateStats(ctx context.Context, updateReq *overlay.U // however we've seen from some crashes that it does. We need to track down the cause of these crashes // but for now we're adding a nil check to prevent a panic. if dbNode == nil { - return nil, Error.Wrap(errs.New("unable to get node by ID: %s", nodeID.String())) + return nil, Error.Wrap(errs.Combine(errs.New("unable to get node by ID: %v", nodeID), tx.Rollback())) } return getNodeStats(dbNode), Error.Wrap(tx.Commit()) @@ -719,7 +719,7 @@ func (cache *overlaycache) UpdateUptime(ctx context.Context, nodeID storj.NodeID // however we've seen from some crashes that it does. We need to track down the cause of these crashes // but for now we're adding a nil check to prevent a panic. if dbNode == nil { - return nil, Error.Wrap(errs.New("unable to get node by ID: %s", nodeID.String())) + return nil, Error.Wrap(errs.Combine(errs.New("unable to get node by ID: %v", nodeID), tx.Rollback())) } return getNodeStats(dbNode), Error.Wrap(tx.Commit())