consul: Only close the cursor for read-only transactions (mdb)

This commit is contained in:
Armon Dadgar 2014-03-27 10:48:04 -07:00
parent 80439376cf
commit 2d937bc0a8
1 changed files with 5 additions and 1 deletions

View File

@ -535,7 +535,11 @@ func (i *MDBIndex) iterate(tx *MDBTxn, prefix []byte,
if err != nil {
return err
}
defer cursor.Close()
// Read-only cursors are NOT closed by MDB when a transaction
// either commits or aborts, so must be closed explicitly
if tx.readonly {
defer cursor.Close()
}
var key, encRowId, objBytes []byte
first := true