From 4c3218ef9f35e6a8336a096e45d5df7b57244bc4 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sat, 17 Feb 2024 19:38:01 +0100 Subject: [PATCH] repository: include packID in StreamPack for decrypt/decompress errors --- internal/repository/repository.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/repository/repository.go b/internal/repository/repository.go index 87eb01367..8e34c7125 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -1116,13 +1116,16 @@ func (b *PackBlobIterator) Next() (PackBlobValue, error) { // decryption errors are likely permanent, give the caller a chance to skip them nonce, ciphertext := b.buf[:b.key.NonceSize()], b.buf[b.key.NonceSize():] plaintext, err := b.key.Open(ciphertext[:0], nonce, ciphertext, nil) + if err != nil { + err = fmt.Errorf("decrypting blob %v from %v failed: %w", h, b.packID.Str(), err) + } if err == nil && entry.IsCompressed() { // DecodeAll will allocate a slice if it is not large enough since it // knows the decompressed size (because we're using EncodeAll) b.decode, err = b.dec.DecodeAll(plaintext, b.decode[:0]) plaintext = b.decode if err != nil { - err = errors.Errorf("decompressing blob %v failed: %v", h, err) + err = fmt.Errorf("decompressing blob %v from %v failed: %w", h, b.packID.Str(), err) } } if err == nil {