mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-24 22:32:15 +00:00
fix evidence db iter leak (#2516)
Also make reversing a slice more efficient
This commit is contained in:
parent
fd1b8598bc
commit
5c6999cf8f
@ -39,3 +39,4 @@ IMPROVEMENTS:
|
||||
BUG FIXES:
|
||||
- [autofile] \#2428 Group.RotateFile need call Flush() before rename (@goolAdapter)
|
||||
- [node] \#2434 Make node respond to signal interrupts while sleeping for genesis time
|
||||
- [evidence] \#2515 fix db iter leak (@goolAdapter)
|
||||
|
@ -79,11 +79,11 @@ func NewEvidenceStore(db dbm.DB) *EvidenceStore {
|
||||
func (store *EvidenceStore) PriorityEvidence() (evidence []types.Evidence) {
|
||||
// reverse the order so highest priority is first
|
||||
l := store.listEvidence(baseKeyOutqueue, -1)
|
||||
l2 := make([]types.Evidence, len(l))
|
||||
for i := range l {
|
||||
l2[i] = l[len(l)-1-i]
|
||||
for i, j := 0, len(l)-1; i < j; i, j = i+1, j-1 {
|
||||
l[i], l[j] = l[j], l[i]
|
||||
}
|
||||
return l2
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
// PendingEvidence returns known uncommitted evidence up to maxBytes.
|
||||
@ -98,6 +98,7 @@ func (store *EvidenceStore) PendingEvidence(maxBytes int64) (evidence []types.Ev
|
||||
func (store *EvidenceStore) listEvidence(prefixKey string, maxBytes int64) (evidence []types.Evidence) {
|
||||
var bytes int64
|
||||
iter := dbm.IteratePrefix(store.db, []byte(prefixKey))
|
||||
defer iter.Close()
|
||||
for ; iter.Valid(); iter.Next() {
|
||||
val := iter.Value()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user