datafusion-proto: decoding an AvroScan node without the avro feature panics
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 85/100
Direzione di ricerca
Il panic è il ramo #[cfg(not(feature = "avro"))] per AvroScan in datafusion/proto/src/physical_plan/mod.rs, intorno alle righe 1238-1247. Copia il ramo ParquetScan appena sopra, che restituisce not_impl_err! per lo stesso caso. È completato quando la decodifica di un nodo AvroScan con le funzionalità predefinite restituisce Err invece di andare in panic, cosa che un nuovo test compilato senza la funzionalità avro può verificare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
datafusion-proto is built without avro by default, since its default features are ["parquet"]. In that build, PhysicalPlanNode::try_into_physical_plan panics on an AvroScan node:
#[cfg(not(feature = "avro"))]
panic!(
"Unable to process a Avro PhysicalPlan when `avro` feature is not enabled"
)
The ParquetScan arm just above it handles the same situation with not_impl_err!:
The same code is in 55.1.0, src/physical_plan/mod.rs, lines 1100-1108.
To Reproduce
Build datafusion-proto with default features, then decode a PhysicalPlanNode whose physical_plan_type is AvroScan(Default::default()):
let node = protobuf::PhysicalPlanNode {
physical_plan_type: Some(protobuf::physical_plan_node::PhysicalPlanType::AvroScan(Default::default())),
};
let _ = datafusion_proto::bytes::physical_plan_from_bytes(&node.encode_to_vec(), &ctx.task_ctx());
The arm is an unconditional panic!, so this panics before the node's contents are looked at.
Expected behavior
Return not_impl_err!, as the ParquetScan arm does, so a caller gets Err and keeps running.
Additional context
This matters wherever a process decodes plans it did not encode itself. One example is a distributed worker that receives plan stages from peers. A few bytes of input panic the decoding task, and under panic = "abort" they stop the whole process.
A fix is one line, plus a decode test with the feature off. I can open the PR if that is welcome.
- Lingua principale
- Rust
- Stelle
- 9.6k
- Fork
- 2.6k
- Merge medio
- 4g 11h
- PR unite (30g)
- 322
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/datafusion
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apache/datafusion#26999 ·
I maintainer di solito rispondono entro 1 giorno
-
`repeat` on `LargeUtf8` aborts the process on a result size no allocation can satisfyForse già presa @shahwazreza l’ha presa 2 giorni fa. Apertabug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion#26948 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] atan2 does not normalize -0.0 the way Spark doesForse già presa @pujitha24 l’ha presa 3 giorni fa. Apertabug spark
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion#26333 ·
I maintainer di solito rispondono entro 1 giorno
-
Unparser turns NULL list literals into `[]` and fails on NULL struct/map literalsForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug help wanted unparser
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion#26316 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Struct union type coercion takes field nullability from the wrong field when field order differsForse di nuovo libera @med9110 l’ha presa 18 giorni fa e non c’è nessuna pull request aperta. Apertabug help wanted logical-expr tech debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/datafusion#26296 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/datafusion
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
libnativeapi/nativeapi#21 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
longbridge/nsh#804 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno