Skip to content

Fix merge_kernels benchmark panic due to not wrapping with Scalar#10199

Merged
alamb merged 1 commit into
apache:mainfrom
Jefffrey:fix-merge-kernels-bench
Jun 23, 2026
Merged

Fix merge_kernels benchmark panic due to not wrapping with Scalar#10199
alamb merged 1 commit into
apache:mainfrom
Jefffrey:fix-merge-kernels-bench

Conversation

@Jefffrey

Copy link
Copy Markdown
Contributor

as identified by

this benchmark was panicking when run, because it was passing a 1-len array as an ArrayRef instead of a Scalar and thus indexing the 2nd/3rd element was causing out of bounds panic; when wrapped in Scalar the single element will be repeated so it wouldn't index out of bounds it would just get the first element

@github-actions github-actions Bot added the arrow Changes to the arrow crate label Jun 23, 2026

@alamb alamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Jefffrey -- looks good to me

&mut group,
&masks,
&non_null_scalar_1,
&Scalar::new(non_null_scalar_1.clone()),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified this panic on main with

cargo bench --bench merge_kernels --profile=dev -- non_null_scalar_vs_array
...
Benchmarking merge_8192_from_i32/non_null_scalar_vs_array/all_true: Warming up for 3.0000 s
thread 'main' (115763431) panicked at arrow-data/src/transform/primitive.rs:31:43:
range end index 8192 out of range for slice of length 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: bench failed, to rerun pass `-p arrow --bench merge_kernels`

&masks,
&array_1_10pct_nulls,
&non_null_scalar_1,
&Scalar::new(non_null_scalar_1.clone()),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified this panic on main with

cargo bench --bench merge_kernels --profile=dev -- array_vs_non_null_scalar
...
Benchmarking merge_8192_from_i32/array_vs_non_null_scalar/99pct_true: Warming up for 3.0000 s
thread 'main' (115764966) panicked at arrow-data/src/transform/primitive.rs:31:43:
range end index 2 out of range for slice of length 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: bench failed, to rerun pass `-p arrow --bench merge_kernels`

@alamb alamb merged commit 25d2108 into apache:main Jun 23, 2026
27 checks passed
@Jefffrey Jefffrey deleted the fix-merge-kernels-bench branch June 23, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants