apache / apache/datafusion

Logical Expr serde should be stack safe

Offen
#5,693 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Rust
Sterne
9.3k
Forks
2.4k
Ø Merge
3 T. 11 Std.
Gemergte PRs (30 T.)
360

Beschreibung

### Is your feature request related to a problem or challenge?

Noticed while working on https://github.com/apache/arrow-datafusion/issues/5691 I was getting stack overflows while running tests (well actually a segfault but after some investigation I think it was just a quirk of my ARM mac and really the underlying issue was a stack overflow). I was able to run the tests by compiling them in release mode but the current recursive expression parsing/translation is not stack safe and will likely eventually cause issues.

Otherwise deeply nested expressions can cause a system crash.

### Describe the solution you'd like

Avoid recursion in `datafusion_proto::logical_plan::from_proto::parse_expr`

### Describe alternatives you've considered

Leave it as is and document as a known limitation

### Additional context

_No response_

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne bei datafusion_proto::logical_plan::from_proto::parse_expr und untersuche die rekursive Ausdrucksanalyse und -übersetzung, die im Issue beschrieben wird. Reproduziere den Fehler bei tief verschachtelten Ausdrücken mithilfe der relevanten Tests und verifiziere anschließend, dass das Parsen solcher Ausdrücke keinen Stacküberlauf mehr verursacht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
databases
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.