Skip to content

[VL][DO NOT MERGE] Test-only repro for nested FieldReference crash (verifies #12290)#12291

Draft
felipepessoto wants to merge 3 commits into
apache:mainfrom
felipepessoto:test-only-fieldref-repro
Draft

[VL][DO NOT MERGE] Test-only repro for nested FieldReference crash (verifies #12290)#12291
felipepessoto wants to merge 3 commits into
apache:mainfrom
felipepessoto:test-only-fieldref-repro

Conversation

@felipepessoto

Copy link
Copy Markdown
Contributor

What changes are proposed in this pull request?

Verification PR — please do NOT merge. This contains only the regression test added in #12290, without the fix, to confirm the test is a genuine regression test.

Together these two PRs show the test fails without the fix and passes with it.

The actual fix is in #12290.

How was this patch tested?

By CI: this PR's cpp-test-udf-test job is expected to be red (crash), while #12290's is green.

Was this patch authored or co-authored using generative AI tooling?

Generated-by: GitHub Copilot CLI (claude-opus-4.8)

…erifies apache#12290)

Contains ONLY the regression test from apache#12290, WITHOUT the
SubstraitToVeloxExpr.cc fix, to confirm the test genuinely reproduces the
crash. The cpp unit test job (ctest) is expected to FAIL here -- toVeloxExpr
still dereferences a null RowType and the test process crashes with a SIGSEGV
-- and passes in apache#12290 which includes the fix.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
felipepessoto and others added 2 commits June 16, 2026 22:16
…crash

Adds VeloxDeltaNestedFieldArraySuite: a Delta MERGE that updates a field nested
under an array (`value.a` where `value` is `array<struct<a:int>>`). On an
unfixed build this drives SubstraitVeloxExprConverter::toVeloxExpr to descend
into the array, dereference the null RowType returned by asRowType(), and crash
the forked JVM with a SIGSEGV -- the Spark-level companion to the existing
SubstraitVeloxExprConverterTest.cc.

This reaches the native converter (and the crash) under the Spark 4.0/4.1
-Pdelta CI jobs (Delta 4.x). With the fix in apache#12290 the converter throws a
catchable VeloxUserError, Gluten falls back, and Delta raises the expected
AnalysisException.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds an UPDATE-based test (`UPDATE t SET value.a = 2` where value is
array<struct>) next to the existing MERGE test, to empirically check whether
UPDATE reaches the native converter. Delta's PreprocessTableUpdate is an
analyzer rule that raises the AnalysisException during analysis, so this is
expected to fall back/throw without crashing -- but the velox CI (Delta 4.x)
will confirm whether that holds, in contrast to MERGE.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant