@@ -11,6 +11,7 @@ import (
11
11
"sync"
12
12
"time"
13
13
14
+ "github.com/cockroachdb/errors"
14
15
"github.com/cockroachdb/pebble/internal/base"
15
16
"github.com/cockroachdb/pebble/internal/invariants"
16
17
"github.com/cockroachdb/pebble/internal/manifest"
@@ -72,15 +73,16 @@ func (s *Snapshot) NewIterWithContext(ctx context.Context, o *IterOptions) (*Ite
72
73
//
73
74
// See comment on db.ScanInternal for the behaviour that can be expected of
74
75
// point keys deleted by range dels and keys masked by range keys.
75
- func (s * Snapshot ) ScanInternal (ctx context.Context , opts ScanInternalOptions ) error {
76
+ func (s * Snapshot ) ScanInternal (ctx context.Context , opts ScanInternalOptions ) ( err error ) {
76
77
if s .db == nil {
77
78
panic (ErrClosed )
78
79
}
79
- iter , err := s .db .newInternalIter (ctx , snapshotIterOpts {seqNum : s .seqNum }, & opts )
80
+ var iter * scanInternalIterator
81
+ iter , err = s .db .newInternalIter (ctx , snapshotIterOpts {seqNum : s .seqNum }, & opts )
80
82
if err != nil {
81
83
return err
82
84
}
83
- defer iter .close ()
85
+ defer func () { err = errors . CombineErrors ( err , iter .Close ()) } ()
84
86
return scanInternalImpl (ctx , iter , & opts )
85
87
}
86
88
@@ -449,7 +451,7 @@ func (es *EventuallyFileOnlySnapshot) NewIterWithContext(
449
451
// point keys deleted by range dels and keys masked by range keys.
450
452
func (es * EventuallyFileOnlySnapshot ) ScanInternal (
451
453
ctx context.Context , opts ScanInternalOptions ,
452
- ) error {
454
+ ) ( err error ) {
453
455
if es .db == nil {
454
456
panic (ErrClosed )
455
457
}
@@ -467,10 +469,11 @@ func (es *EventuallyFileOnlySnapshot) ScanInternal(
467
469
}
468
470
}
469
471
es .mu .Unlock ()
470
- iter , err := es .db .newInternalIter (ctx , sOpts , & opts )
472
+ var iter * scanInternalIterator
473
+ iter , err = es .db .newInternalIter (ctx , sOpts , & opts )
471
474
if err != nil {
472
475
return err
473
476
}
474
- defer iter .close ()
477
+ defer func () { err = errors . CombineErrors ( err , iter .Close ()) } ()
475
478
return scanInternalImpl (ctx , iter , & opts )
476
479
}
0 commit comments