You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Tempo was running stable for some time on zstd compression. We decided to investigate snappy compression, switched the storage/trace/block/encoding field to 'snappy' and restarted ingesters. Afterwards, tempo started encountering many 'magic number' errors. This error is from a compactor but other components had the same error:
level=error ts=2021-09-07T15:57:10.601766281Z caller=compactor.go:110 msg="error during compaction cycle" err="error iterating input blocks: error reading objects for records, blockID: 4644fe19-1bc4-495f-99da-be0d1831543a, err: invalid input: magic number mismatch"
Inspecting the block, it seems like the data file was written with snappy as expected, but the meta.json still contains zstd. This lines up with the error message, which seems to be from zstd checking and failing for its magic number prefix.
A couple more things to note about the cli output below:
(1) Our ingesters cut blocks fairly consistently, and on zstd were ~350MB, and this block is ~600MB. This leads us to believe that the data file is indeed snappy.
(2) The size is also wrong. It is the ~350MB size from zstd and not the true data file size anymore.
Deploy r8 (which includes an ingester update and restart)
Perform queries or let compactors run
Expected behavior
It should be fine to switch an ingester's encoding between restarts. Blocks written prior should keep the previous encoding, and new blocks should be written with the new encoding.
Environment:
Infrastructure: Kubernetes
Deployment tool: jsonnet
Additional context
Here are ingester logs for this block. After the restart it both replayed the WAL and rediscovered the complete block. It doesn't seem like it should have done both... only one needs to be done. Maybe the error is an edge case in this replay/rediscover logic.
Describe the bug
Tempo was running stable for some time on zstd compression. We decided to investigate snappy compression, switched the storage/trace/block/encoding field to 'snappy' and restarted ingesters. Afterwards, tempo started encountering many 'magic number' errors. This error is from a compactor but other components had the same error:
Inspecting the block, it seems like the
data
file was written with snappy as expected, but the meta.json still containszstd
. This lines up with the error message, which seems to be from zstd checking and failing for its magic number prefix.A couple more things to note about the cli output below:
(1) Our ingesters cut blocks fairly consistently, and on zstd were ~350MB, and this block is ~600MB. This leads us to believe that the
data
file is indeed snappy.(2) The
size
is also wrong. It is the ~350MB size from zstd and not the true data file size anymore.To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should be fine to switch an ingester's encoding between restarts. Blocks written prior should keep the previous encoding, and new blocks should be written with the new encoding.
Environment:
Additional context
Here are ingester logs for this block. After the restart it both replayed the WAL and rediscovered the complete block. It doesn't seem like it should have done both... only one needs to be done. Maybe the error is an edge case in this replay/rediscover logic.
The text was updated successfully, but these errors were encountered: