vortex-data
vortex
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
break[array]: mask compute to lazy mask execution (#6485)
develop
9 hours ago
fix[layout]: snapshot nbytes at push time in ChunksBuffer to avoid underflow (#6520) ## Does this PR closes an open issue or discussion? - N/A ## What changes are included in this PR? - Changed ChunksBuffer.data from VecDeque<ArrayRef> to VecDeque<(ArrayRef, u64)>, snapshotting each chunk's nbytes() at push time. - pop_front now subtracts the stored snapshot instead of re-querying chunk.nbytes(). - Added a regression test that reproduces the underflow via SharedArray state transition. ## What is the rationale for this change? SharedArray slices sharing an Arc<Mutex<SharedState>> can transition from Source to Cached when any one of them is canonicalized. This is interior mutation ā it happens without the ChunksBuffer knowing. Because nbytes() traverses the current array tree, a chunk that reported a small nbytes() at push time (compressed/source-era) can report a much larger value at pop time (decompressed/cached-era). The running nbytes total was accumulated with the smaller values, so subtracting the larger value causes an integer underflow panic (attempt to subtract with overflow). By snapshotting nbytes() once at push time and storing it alongside the chunk, the accounting stays self-consistent regardless of any interior state changes between push and pop. ## How is this change tested? A new unit test chunks_buffer_pop_front_no_panic_after_shared_execution reproduces the exact failure scenario: 1. Creates a ConstantArray (tiny nbytes) wrapped in a SharedArray. 2. Slices it into two chunks and pushes both into a ChunksBuffer. 3. Pops the first chunk (succeeds, no state change yet). 4. Triggers canonicalization via shared_handle.get_or_compute(), which transitions all slices to Cached state with much larger nbytes. 5. Pops the second chunk ā before this fix, this panicked with underflow. ## Are there any user-facing changes? No. This is an internal bug fix in the repartition writer. No public APIs are changed. --------- Signed-off-by: Brian Hart <brian@withforge.com>
develop
11 hours ago
CR Signed-off-by: Brian Hart <brian@withforge.com>
brainhart:2026-02-15-vortex-repartition-bytes-underflow
11 hours ago
bracket CUB filters Signed-off-by: Andrew Duffy <andrew@a10y.dev>
aduffy/gpu-scan-measure
12 hours ago
hardest Signed-off-by: Andrew Duffy <andrew@a10y.dev>
aduffy/gpu-scan-measure
14 hours ago
address harder Signed-off-by: Andrew Duffy <andrew@a10y.dev>
aduffy/gpu-scan-measure
14 hours ago
fix Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
ji/mask-compute-fn-remove
15 hours ago
fix Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
ji/mask-compute-fn-remove
15 hours ago
Active Branches
CLI for measuring execute_cuda encoding perf
last run
12 hours ago
#6381
CodSpeed Performance Gauge
0%
pvalue::cast returns VortexResult
last run
15 hours ago
#6532
CodSpeed Performance Gauge
0%
Move `vortex-scalar` into `vortex-array`
last run
16 hours ago
#6523
CodSpeed Performance Gauge
+16%
Ā© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs