소스 검색

boltDB AtomicDelete fails for non-existent key

Signed-off-by: Santhosh Manohar <santhosh@docker.com>
Santhosh Manohar 9 년 전
부모
커밋
f06f78e638
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      libnetwork/internal/kvstore/boltdb/boltdb.go

+ 3 - 0
libnetwork/internal/kvstore/boltdb/boltdb.go

@@ -330,6 +330,9 @@ func (b *BoltDB) AtomicDelete(key string, previous *store.KVPair) (bool, error)
 		}
 		}
 
 
 		val = bucket.Get([]byte(key))
 		val = bucket.Get([]byte(key))
+		if val == nil {
+			return store.ErrKeyNotFound
+		}
 		dbIndex := binary.LittleEndian.Uint64(val[:libkvmetadatalen])
 		dbIndex := binary.LittleEndian.Uint64(val[:libkvmetadatalen])
 		if dbIndex != previous.LastIndex {
 		if dbIndex != previous.LastIndex {
 			return store.ErrKeyModified
 			return store.ErrKeyModified