Fix compute-sanitizer racecheck hazards in DELTA_BYTE_ARRAY decode path - #23910
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughSummary by CodeRabbit
WalkthroughChangesDELTA_BYTE_ARRAY decoding
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR changes decoder dispatch to use compile-time-resolved prefix and suffix paths while preserving decode behavior, reducing reported racecheck hazards without introducing a supported merge-blocking risk. No actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Linked Issues checkExplanation The changes address issue ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
|
/ok to test 515fd04 |
|
/merge |
Description
Fixes
compute-sanitizer racecheckhazards in the ParquetDELTA_BYTE_ARRAYdecode path.The prefix and suffix length decoders are traversed concurrently on separate warps but dispatched through a runtime-selected
delta_binary_decoderpointer (db = mgr == 0 ? &prefixes : &suffixes). Since the target is not known at compile time, the compiler speculatively loads both sub-objects on everydb->access, so one warp reads the other's decoder state while it is being written, which racecheck reports as a cross-warp hazard.Dispatches to each decoder through a compile-time-constant object per warp instead, matching the main decode loop. This is semantically identical and only changes codegen.
Closes #23900
Checklist