From 4ba4abe666fd7223dec7e29cff2029d96c46ca98 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Tue, 24 Dec 2019 20:47:43 +0200 Subject: [PATCH] lib/encoding: log the compressed block contents if it cannot be decompressed or unmarshaled This should help detecting the root cause of https://github.com/VictoriaMetrics/VictoriaMetrics/issues/281 --- lib/encoding/encoding.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/encoding/encoding.go b/lib/encoding/encoding.go index 06f6681fe1..072bb487fd 100644 --- a/lib/encoding/encoding.go +++ b/lib/encoding/encoding.go @@ -166,24 +166,24 @@ func unmarshalInt64Array(dst []int64, src []byte, mt MarshalType, firstValue int bb := bbPool.Get() bb.B, err = DecompressZSTD(bb.B[:0], src) if err != nil { - return nil, fmt.Errorf("cannot decompress zstd data of size %d: %s", len(src), err) + return nil, fmt.Errorf("cannot decompress zstd data of size %d: %s; src_zstd=%X", len(src), err, src) } dst, err = unmarshalInt64NearestDelta(dst, bb.B, firstValue, itemsCount) bbPool.Put(bb) if err != nil { - return nil, fmt.Errorf("cannot unmarshal nearest delta data after zstd decompression: %s", err) + return nil, fmt.Errorf("cannot unmarshal nearest delta data after zstd decompression: %s; src_zstd=%X", err, src) } return dst, nil case MarshalTypeZSTDNearestDelta2: bb := bbPool.Get() bb.B, err = DecompressZSTD(bb.B[:0], src) if err != nil { - return nil, fmt.Errorf("cannot decompress zstd data of size %d: %s", len(src), err) + return nil, fmt.Errorf("cannot decompress zstd data of size %d: %s; src_zstd=%X", len(src), err, src) } dst, err = unmarshalInt64NearestDelta2(dst, bb.B, firstValue, itemsCount) bbPool.Put(bb) if err != nil { - return nil, fmt.Errorf("cannot unmarshal nearest delta2 data after zstd decompression: %s", err) + return nil, fmt.Errorf("cannot unmarshal nearest delta2 data after zstd decompression: %s; src_zstd=%X", err, src) } return dst, nil case MarshalTypeNearestDelta: