Skip to content

Fuzzing Crash: VortexError in file_io#7956

Open
vortex-claude[bot] wants to merge 1 commit into
developfrom
claude/issue-7955-20260515-2235
Open

Fuzzing Crash: VortexError in file_io#7956
vortex-claude[bot] wants to merge 1 commit into
developfrom
claude/issue-7955-20260515-2235

Conversation

@vortex-claude
Copy link
Copy Markdown

@vortex-claude vortex-claude Bot commented May 15, 2026

Fixes #7955

Generated with Claude Code.

View Claude run

…iffers from array storage type

When `between_unpack` could not cast a bound scalar's backing integer value to
the array's storage type `T` (e.g. `DecimalValue::I32(82246)` → `i16`), it
previously returned `Err(vortex_bail!(...))`. The fuzzer found a case where a
`DecimalArray` with `values_type = I16` received a bound stored as
`DecimalValue::I32`, causing the error to propagate and the fuzz harness to
panic via `vortex_expect`.

The fix: return `Ok(None)` instead of `Err(...)` in that case, signalling that
this kernel cannot handle the input. `between_canonical` then falls through to
the generic Arrow-based comparison path, which compares decimal values
semantically by their shared precision and scale and correctly handles mixed
storage widths.

A regression test exercises the exact scenario from the crash report: an
`i16`-backed decimal array compared against bounds backed by `i32`, where the
upper bound value (82246) exceeds `i16::MAX`.

Fixes #7955

Co-authored-by: Nicholas Gates <gatesn@users.noreply.github.com>
Signed-off-by: "Claude" <claude@anthropic.com>
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 15, 2026

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 1 improved benchmark
❌ 1 regressed benchmark
✅ 1219 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_varbinview_canonical_into[(100, 100)] 307.8 µs 273.2 µs +12.66%
Simulation chunked_varbinview_opt_canonical_into[(1000, 10)] 187.6 µs 225.4 µs -16.76%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing claude/issue-7955-20260515-2235 (9ca2250) with develop (d71d3d3)

Open in CodSpeed

@robert3005
Copy link
Copy Markdown
Contributor

Can you compare here without allocating? So iterate the decimal, upcast and compare instead of materialising the upcast?

@gatesn gatesn added the tldr label May 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fuzzing Crash: VortexError in file_io

2 participants