aboutsummaryrefslogtreecommitdiff
path: root/object/store/packed/pack.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-14 14:13:45 +0000
committerGravatar Runxi Yu2026-06-14 14:13:45 +0000
commitc9fdf61bd91875cdc71559cd9bab8314ad8775e1 (patch)
treecd970e43d1c47fa8888bbb99f760c8cf13fdf0b8 /object/store/packed/pack.go
parentinternal/format/packidx/bloom: Add trailers (diff)
object/store/packed, cmd/idx-bloom: NewBuilder wants a PackHash
Diffstat (limited to 'object/store/packed/pack.go')
-rw-r--r--object/store/packed/pack.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/object/store/packed/pack.go b/object/store/packed/pack.go
index ba865e51..9cd6162b 100644
--- a/object/store/packed/pack.go
+++ b/object/store/packed/pack.go
@@ -73,7 +73,7 @@ func openPack(root *os.Root, name string, objectFormat id.ObjectFormat) (*pack,
return nil, fmt.Errorf("%w: pack %q: %w", ErrMalformedPackedStore, name, err)
}
- bloomMapping, filter := openBloom(root, name, objectFormat)
+ bloomMapping, filter := openBloom(root, name, objectFormat, idx.PackHash())
return &pack{
name: name,
@@ -86,7 +86,7 @@ func openPack(root *os.Root, name string, objectFormat id.ObjectFormat) (*pack,
}, nil
}
-func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat) (*mmap.Mmap, *bloom.Bloom) {
+func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat, packHash []byte) (*mmap.Mmap, *bloom.Bloom) {
mapping, err := mapFile(root, name+".bloom")
if err != nil {
return nil, nil
@@ -99,6 +99,12 @@ func openBloom(root *os.Root, name string, objectFormat id.ObjectFormat) (*mmap.
return nil, nil
}
+ if !bytes.Equal(filter.PackHash(), packHash) {
+ _ = mapping.Close()
+
+ return nil, nil
+ }
+
return mapping, &filter
}