@@ -171,7 +171,11 @@ func (m *crdbLogStorage) GetActiveLogIDs(ctx context.Context) ([]int64, error) {
171171 if err != nil {
172172 return nil , err
173173 }
174- defer rows .Close ()
174+ defer func () {
175+ if err := rows .Close (); err != nil {
176+ klog .Errorf ("rows.Close(): %v" , err )
177+ }
178+ }()
175179 ids := []int64 {}
176180 for rows .Next () {
177181 var treeID int64
@@ -204,12 +208,16 @@ func (m *crdbLogStorage) beginInternal(ctx context.Context, tree *trillian.Tree)
204208 ltx .treeTX .writeRevision = 0
205209 return ltx , err
206210 } else if err != nil {
207- ttx .Close ()
211+ if err := ttx .Close (); err != nil {
212+ klog .Errorf ("ttx.Close(): %v" , err )
213+ }
208214 return nil , err
209215 }
210216
211217 if err := ltx .root .UnmarshalBinary (ltx .slr .LogRoot ); err != nil {
212- ttx .Close ()
218+ if err := ttx .Close (); err != nil {
219+ klog .Errorf ("ttx.Close(): %v" , err )
220+ }
213221 return nil , err
214222 }
215223
@@ -226,7 +234,11 @@ func (m *crdbLogStorage) ReadWriteTransaction(ctx context.Context, tree *trillia
226234 if err != nil && err != storage .ErrTreeNeedsInit {
227235 return err
228236 }
229- defer tx .Close ()
237+ defer func () {
238+ if err := tx .Close (); err != nil {
239+ klog .Errorf ("tx.Close(): %v" , err )
240+ }
241+ }()
230242 if err := f (ctx , tx ); err != nil {
231243 return err
232244 }
@@ -239,7 +251,11 @@ func (m *crdbLogStorage) AddSequencedLeaves(ctx context.Context, tree *trillian.
239251 // Ensure we don't leak the transaction. For example if we get an
240252 // ErrTreeNeedsInit from beginInternal() or if AddSequencedLeaves fails
241253 // below.
242- defer tx .Close ()
254+ defer func () {
255+ if err := tx .Close (); err != nil {
256+ klog .Errorf ("tx.Close(): %v" , err )
257+ }
258+ }()
243259 }
244260 if err != nil {
245261 return nil , err
@@ -268,7 +284,11 @@ func (m *crdbLogStorage) QueueLeaves(ctx context.Context, tree *trillian.Tree, l
268284 // Ensure we don't leak the transaction. For example if we get an
269285 // ErrTreeNeedsInit from beginInternal() or if QueueLeaves fails
270286 // below.
271- defer tx .Close ()
287+ defer func () {
288+ if err := tx .Close (); err != nil {
289+ klog .Errorf ("tx.Close(): %v" , err )
290+ }
291+ }()
272292 }
273293 if err != nil {
274294 return nil , err
@@ -328,15 +348,23 @@ func (t *logTreeTX) DequeueLeaves(ctx context.Context, limit int, cutoffTime tim
328348 klog .Warningf ("Failed to prepare dequeue select: %s" , err )
329349 return nil , err
330350 }
331- defer stx .Close ()
351+ defer func () {
352+ if err := stx .Close (); err != nil {
353+ klog .Errorf ("stx.Close(): %v" , err )
354+ }
355+ }()
332356
333357 leaves := make ([]* trillian.LogLeaf , 0 , limit )
334358 rows , err := stx .QueryContext (ctx , t .treeID , cutoffTime .UnixNano (), limit )
335359 if err != nil {
336360 klog .Warningf ("Failed to select rows for work: %s" , err )
337361 return nil , err
338362 }
339- defer rows .Close ()
363+ defer func () {
364+ if err := rows .Close (); err != nil {
365+ klog .Errorf ("rows.Close(): %v" , err )
366+ }
367+ }()
340368
341369 for rows .Next () {
342370 leaf , dqInfo , err := t .dequeueLeaf (rows )
@@ -639,7 +667,11 @@ func (t *logTreeTX) getLeavesByRangeInternal(ctx context.Context, start, count i
639667 klog .Warningf ("Failed to get leaves by range: %s" , err )
640668 return nil , err
641669 }
642- defer rows .Close ()
670+ defer func () {
671+ if err := rows .Close (); err != nil {
672+ klog .Errorf ("rows.Close(): %v" , err )
673+ }
674+ }()
643675
644676 ret := make ([]* trillian.LogLeaf , 0 , count )
645677 for wantIndex := start ; rows .Next (); wantIndex ++ {
@@ -770,7 +802,11 @@ func (t *logTreeTX) StoreSignedLogRoot(ctx context.Context, root *trillian.Signe
770802
771803func (t * logTreeTX ) getLeavesByHashInternal (ctx context.Context , leafHashes [][]byte , tmpl * sql.Stmt , desc string ) ([]* trillian.LogLeaf , error ) {
772804 stx := t .tx .StmtContext (ctx , tmpl )
773- defer stx .Close ()
805+ defer func () {
806+ if err := stx .Close (); err != nil {
807+ klog .Errorf ("stx.Close(): %v" , err )
808+ }
809+ }()
774810
775811 var args []interface {}
776812 for _ , hash := range leafHashes {
@@ -782,7 +818,11 @@ func (t *logTreeTX) getLeavesByHashInternal(ctx context.Context, leafHashes [][]
782818 klog .Warningf ("Query() %s hash = %v" , desc , err )
783819 return nil , err
784820 }
785- defer rows .Close ()
821+ defer func () {
822+ if err := rows .Close (); err != nil {
823+ klog .Errorf ("rows.Close(): %v" , err )
824+ }
825+ }()
786826
787827 // The tree could include duplicates so we don't know how many results will be returned
788828 var ret []* trillian.LogLeaf
0 commit comments