diff --git a/index/store/leveldb/batch.go b/index/store/leveldb/batch.go index f5a3dfe5..abce518f 100644 --- a/index/store/leveldb/batch.go +++ b/index/store/leveldb/batch.go @@ -99,7 +99,10 @@ func (ldb *Batch) Execute() error { } } - return ldb.store.db.Write(defaultWriteOptions(), batch) + wopts := defaultWriteOptions() + err := ldb.store.db.Write(wopts, batch) + wopts.Close() + return err } func (ldb *Batch) Close() error { diff --git a/index/store/leveldb/iterator.go b/index/store/leveldb/iterator.go index dd44e636..10ef8d7d 100644 --- a/index/store/leveldb/iterator.go +++ b/index/store/leveldb/iterator.go @@ -21,10 +21,12 @@ type Iterator struct { } func newIterator(store *Store) *Iterator { + ropts := defaultReadOptions() rv := Iterator{ store: store, - iterator: store.db.NewIterator(defaultReadOptions()), + iterator: store.db.NewIterator(ropts), } + ropts.Close() return &rv } @@ -35,6 +37,7 @@ func newIteratorWithSnapshot(store *Store, snapshot *levigo.Snapshot) *Iterator store: store, iterator: store.db.NewIterator(options), } + options.Close() return &rv } diff --git a/index/store/leveldb/store.go b/index/store/leveldb/store.go index 4ee84341..f0b7e335 100644 --- a/index/store/leveldb/store.go +++ b/index/store/leveldb/store.go @@ -49,13 +49,18 @@ func Open(path string, createIfMissing bool, errorIfExists bool) (*Store, error) } func (ldbs *Store) get(key []byte) ([]byte, error) { - return ldbs.db.Get(defaultReadOptions(), key) + options := defaultReadOptions() + b, err := ldbs.db.Get(options, key) + options.Close() + return b, err } func (ldbs *Store) getWithSnapshot(key []byte, snapshot *levigo.Snapshot) ([]byte, error) { options := defaultReadOptions() options.SetSnapshot(snapshot) - return ldbs.db.Get(options, key) + b, err := ldbs.db.Get(options, key) + options.Close() + return b, err } func (ldbs *Store) set(key, val []byte) error { @@ -65,7 +70,10 @@ func (ldbs *Store) set(key, val []byte) error { } func (ldbs *Store) setlocked(key, val []byte) error { - return ldbs.db.Put(defaultWriteOptions(), key, val) + options := defaultWriteOptions() + err := ldbs.db.Put(options, key, val) + options.Close() + return err } func (ldbs *Store) delete(key []byte) error { @@ -75,7 +83,10 @@ func (ldbs *Store) delete(key []byte) error { } func (ldbs *Store) deletelocked(key []byte) error { - return ldbs.db.Delete(defaultWriteOptions(), key) + options := defaultWriteOptions() + err := ldbs.db.Delete(options, key) + options.Close() + return err } func (ldbs *Store) Close() error {