Skip to content

[BUG] string split anchor fuzz test fails with cuDF Glushkov fast path #15293

Description

@thirtiseven

Describe the bug

RegularExpressionTranspilerSuite deterministically fails in string split fuzz - anchor focused after the CI JNI snapshot changed from build 47 to build 48:

string_split java pattern=\S\r+?\n*
cudfPattern=[^ \u000b\n\t\r\f]\r+?\n*
isRegex=true data=\rbaab\r\ra limit=-1

CPU [2]: \rbaa, \ra
GPU [2]: \rbaa, a

The cuDF Glushkov regex path consumes both consecutive \r characters, while Java and the Thompson path preserve the reluctant +? behavior and consume only one.

The underlying cuDF regression is tracked in rapidsai/cudf#23287.

The failure currently blocks Blossom/pre-merge CI, including #15291.

Steps/Code to reproduce bug

Run the affected suite with the failing JNI/cuDF snapshot:

cd tests
LC_ALL=en_US.UTF-8 mvn -U test \
  -Dbuildver=401 \
  -DwildcardSuites=com.nvidia.spark.rapids.RegularExpressionTranspilerSuite

The data and regex fuzzers both use fixed seeds, so the failure is deterministic with the affected snapshot.

Expected behavior

The GPU split result should match the CPU result:

[\rbaa, \ra]

If the Glushkov engine cannot preserve lazy-quantifier semantics, cuDF should fall back to the Thompson engine.

Environment details (please complete the following information)

  • Environment location: NVIDIA Blossom/pre-merge CI
  • Spark configuration settings related to the issue: none
  • Spark version: 4.0.1
  • Scala version: 2.13
  • Passing JNI snapshot: 26.08.0-20260714.071523-47-cuda12
  • Failing JNI snapshot: 26.08.0-20260716.034120-48-cuda12

Additional context

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcudf_dependencyAn issue or PR with this label depends on a new feature in cudftestOnly impacts tests

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions