Logical Expr serde should be stack safe
- 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
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