prometheus/storage/local
Dan Milstein b815956341 Catch errors when unmarshalling delta/doubleDelta encoded chunks
This is (hopefully) a fix for #1653

Specifically, this makes it so that if the length for the stored
delta/doubleDelta is somehow corrupted to be too small, the attempt to
unmarshal will return an error.

The current (broken) behavior is to return a malformed chunk, which can
then lead to a panic when there is an attempt to read header values.

The referenced issue proposed creating chunks with a minimum length -- I
instead opted to just error on the attempt to unmarshal, since I'm not
clear on how it could be safe to proceed when the length is
incorrect/unknown.

The issue also talked about possibly "quarantining series", but I don't
know the surrounding code well enough to understand how to make that
happen.
2016-08-30 07:57:39 -04:00
..
codable Replace metric.LabelPair with model.LabelPair 2015-08-22 13:32:13 +02:00
fixtures/b0 Add benchmark for loading chunks and chunk descs. 2015-03-19 19:28:21 +01:00
index Handle errors caused by data corruption more gracefully 2016-03-02 23:02:34 +01:00
storagetool Make version informations consistent between prometheus components 2016-05-05 22:33:18 +02:00
chunk.go storage: Make MemorySeriesStorage a public type 2016-06-29 08:14:23 +02:00
crashrecovery.go Crash recovery: Fix an edge case. 2016-07-07 16:17:38 +02:00
delta.go Catch errors when unmarshalling delta/doubleDelta encoded chunks 2016-08-30 07:57:39 -04:00
delta_helpers.go Switch from client_golang/model to common/model 2015-08-21 13:33:38 +02:00
delta_test.go Catch errors when unmarshalling delta/doubleDelta encoded chunks 2016-08-30 07:57:39 -04:00
doubledelta.go Catch errors when unmarshalling delta/doubleDelta encoded chunks 2016-08-30 07:57:39 -04:00
heads.go Merge branch 'master' into beorn7/storage4 2016-03-08 00:14:00 +01:00
instrumentation.go storage: Make MemorySeriesStorage a public type 2016-06-29 08:14:23 +02:00
interface.go Make the storage interface higher-level. 2016-07-25 13:59:22 +02:00
locker.go Update doc comments 2016-06-03 12:34:01 +02:00
locker_test.go Add missing license headers 2016-04-13 16:08:22 +02:00
mapper.go Checkpoint fingerprint mappings only upon shutdown 2016-04-15 01:03:28 +02:00
mapper_test.go Checkpoint fingerprint mappings only upon shutdown 2016-04-15 01:03:28 +02:00
persistence.go Storage: Add crash recovery metric 'started_dirty' 2016-08-27 21:41:06 +02:00
persistence_test.go Make the storage interface higher-level. 2016-07-25 13:59:22 +02:00
series.go Make the storage interface higher-level. 2016-07-25 13:59:22 +02:00
series_test.go Never drop a still open head chunk. 2016-04-15 19:18:40 +02:00
storage.go Make the storage interface higher-level. 2016-07-25 13:59:22 +02:00
storage_test.go Make the storage interface higher-level. 2016-07-25 13:59:22 +02:00
test_helpers.go storage: Make MemorySeriesStorage a public type 2016-06-29 08:14:23 +02:00
varbit.go Work around compiler bug 2016-03-29 17:05:28 +02:00
varbit_helpers.go Rename Gorilla into varbit 2016-03-23 16:30:41 +01:00
varbit_test.go Rename Gorilla into varbit 2016-03-23 16:30:41 +01:00