Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Detect Int64 SUM overflow on the CUDA aggregate path instead of wrapping

Abierto
#46 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
57/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

Read crates/oxidelake-device/src/cuda/ops.rs and kernels/cuda/aggregation.cu to trace the CUDA SUM path, then compare it with the CPU overflow handling in crates/oxidelake-device/src/cpu/kernels.rs. Add the specified overflow fixture to conformance and run it against CPU, CUDA, and stock DataFusion; done means all three error and the “by design” comment is removed.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

Today — crates/oxidelake-device/src/cuda/ops.rs:10-11: "Divergence from the CPU reference, by design: device SUM over Int64 wraps on overflow where the CPU path reports an error." The kernel uses atomicAdd((unsigned long long*)&sums[slot], …) (kernels/cuda/aggregation.cu:125); the CPU path errors with "SUM overflowed Int64" (crates/oxidelake-device/src/cpu/kernels.rs:439-441). Conformance has no overflow case (grep -n overflow conformance.rs → 0).

Why it is worth fixing — a documented wrong answer is still a wrong answer, and DataFusion's stock aggregate errors here. Under the equality-with-stock-DataFusion standard the conformance suite enforces, this is the one divergence left in by design.

Fix — accumulate an overflow flag on device (check __builtin_add_overflow-style before the atomic, or keep a per-slot high word and detect carry) and return EngineError::Execution("SUM overflowed Int64") on the host; add an overflow row (i64::MAX - 1 twice in one group) to conformance.

Done when — CPU, CUDA (GPU job) and stock DataFusion all error on the fixture; the "by design" comment is removed.

Lenguaje dominante
Rust
Estrellas
1
Forks
2
Merge medio
1 d 11 h
PR fusionados (30 d)
7

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de vyncint/oxidelake

Todos los issues de vyncint/oxidelake

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.