Fixes
- Snapshot iteration could read past the label set values table.
label_sets_values_viewindexedsymbols_tables_by key id without checking that a values table existed for it, and outside asan/unit-test builds a label name registered after a snapshot was taken could reuse over-allocated memory instead of triggering a reallocation, so the snapshot ended up reporting more keys than it had values tables. In production this crashed the Persistener while it wrote a block index, reading past the end of a values-table vector. The view now remembers the values-table count at creation time and stops traversal there (#485). - Freeing an already-finalized timestamp stream state could crash or corrupt memory.
State::stream_datais a union holding either an open bit sequence or, once finalized, afinalized_stream_id;free_memory()cleared it unconditionally instead of checkingis_finalized()like the destructor does. Freeing a state finalized earlier — e.g. byChunkFinalizer::finalizeor by another series dropping a shared reference — reinterpreted the id as aSharedPtrand crashed or freed a bogus pointer through jemalloc, surfacing as a SIGSEGV inside the cgo bridge.free_memory()now checksis_finalized()first (#484). - Snug composite view iterators could read past label set/label name set data during a concurrent shrink. Read-only
LabelNameSet/LabelSetiterators bounded traversal by the raw item count, which could outrun the shared symbol/values data if a shrink resized it concurrently. Iterators now compute a sentinel id bounded by how much of that data is actually present (#479). - Data race on the item count of serialized timestamp and Gorilla streams. Concurrent access could observe a torn item count read out of a shared pointer. Timestamp and Gorilla stream serialization now carry their item count through a bit-sequence representation that stores it atomically (#473).
- Dependency security updates. Bumped the Go module
golang.org/x/modto v0.40.0 (#475) and the web UI packagenanoidto v3.3.18 (#474), picking up upstream security fixes.