FuzzArrayAction {
array: ChunkedArray {
dtype: Decimal(
DecimalDType {
precision: 76,
scale: 75,
},
Nullable,
),
len: 12,
chunks: [
DecimalArray { ... values_type: I256, validity: AllValid ... },
DecimalArray { ... values_type: I256, validity: AllValid ... }
]
},
actions: [
(Sum, Scalar { value: decimal256(27897708223554751832957193840191214563962497566384571035819434488814200889077, precision=76, scale=75) }),
(Sum, Scalar { value: decimal256(27897708223554751832957193840191214563962497566384571035819434488814200889077, precision=76, scale=75) }),
(Sum, Scalar { value: decimal256(27897708223554751832957193840191214563962497566384571035819434488814200889077, precision=76, scale=75) }),
(Sum, Scalar { value: decimal256(27897708223554751832957193840191214563962497566384571035819434488814200889077, precision=76, scale=75) })
]
}
Fuzzing Crash Report
Analysis
Crash Location:
fuzz/src/array/mod.rs:assert_scalar_eqError Message:
Stack Trace:
Root Cause:
The fuzzer discovered a case where summing decimal values in a ChunkedArray results in an i256 overflow. When this happens, the sum implementation correctly returns
null(as documented invortex-array/src/compute/sum.rs:44and tested invortex-array/src/arrays/decimal/compute/sum.rs:363-377). However, the fuzzer's expectation logic doesn't account for this overflow behavior, causing a mismatch between the expected decimal value and the actual null result.The issue occurs when:
This is a test infrastructure issue rather than a bug in the sum implementation. The fuzzer should either:
Debug Output
Summary
array_opscrash-0171cbd8eede2afdec81571443c1aa8ff4e52032Reproduction
Download the crash artifact:
operations-fuzzing-crash-artifactsat: https://github.com/vortex-data/vortex/actions/runs/20425809503Reproduce locally:
# The artifact contains array_ops/crash-0171cbd8eede2afdec81571443c1aa8ff4e52032 cargo +nightly fuzz run -D --sanitizer=none array_ops array_ops/crash-0171cbd8eede2afdec81571443c1aa8ff4e52032 -- -rss_limit_mb=0Auto-created by fuzzing workflow with Claude analysis