You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Labels have already been applied. A reviewer should spot-check the calls below and close this issue when satisfied; corrections should be made directly on the affected issue.
Notes on label availability and pre-existing labels:
The guide lists spark 4 as a pre-existing area indicator, but the repository only has spark 4.0 / spark 4.1 / spark 4.2, so no spark 4 label was applied in this pass.
area:Iceberg exists in the repository but is not in the guide's area table, so it was not added by this pass. Where an issue already carried it, it was left in place and is listed below for context.
Where an issue already carried other non-guide labels (correctness, performance, test, documentation, question, EPIC, array expressions, map expressions, native_datafusion, spark 4.2), those were left untouched.
Native unix_timestamp returns incorrect results for negative fractional timestamps (#5896)
Area labels: area:expressions
Rationale: floor division returns a value one second lower than Spark for pre-epoch fractional timestamps with no error, which is the guide's "silent wrong results" case at step 1 of the decision tree.
Native Parquet scan multiplies rows for a struct with duplicate field names (#5783)
Area labels: area:scan, correctness, native_datafusion
Rationale: one output row per matching leaf instead of one per input row, with no error or warning, is silent wrong results; confirms the author's priority:critical.
size, arrays_zip, map_from_arrays and array_append return wrong answers for a nondeterministic child (#5781)
Area labels: area:expressions, correctness, array expressions, map expressions
Rationale: the child is serialized twice and evaluated independently, so size returns -1 where Spark returns 1 with no error, reachable in every configuration; silent wrong results per step 1.
Track nested-field statistics pruning and TIMESTAMP_MILLIS overflow parity in filtered scans (#5739)
revertToSpark erases CometIcebergWriteExec / CometNativeWriteExec because originalPlan is the node's own child (#5719)
Area labels: area:writer
Rationale: the write node disappears and a unary child is applied twice, so no data is written or the commit receives garbage rows, which is data corruption under step 1; note that it requires the opt-in spark.comet.exec.transitionRevert.enabled, so a reviewer may prefer priority:high on the "core path over experimental" principle.
array_distinct and array_union diverge from Spark on -0.0 for Spark versions without SPARK-54918 (#5701)
Area labels: area:expressions, correctness
Rationale: [0.0, 1.0] returned in place of Spark's [0.0, -0.0, 1.0] with no fallback is silent wrong results on 3.4, 3.5 and pre-fix 4.x patch releases; escalated from the author's priority:high (see escalations below).
priority:high
Regular native scan forwards S3 options without checking divergence from Hadoop's resolution (#5662)
str_to_map does not honour mapKeyDedupPolicy=LAST_WIN (#5857)
Area labels: area:expressions
Rationale: Comet raises DUPLICATED_MAP_KEY where Spark succeeds, a visible functional failure with a workaround (disable the expression), so step 3 applies.
Compaction with native Iceberg writes leaves a dangled position delete and adds two data files where iceberg-java adds one (#5837)
Area labels: area:writer, area:Iceberg
Rationale: the rewrite produces the wrong file counts and leaves a dangling delete, a broken feature of the off-by-default native writer with the JVM writer as the workaround; step 3.
Native Iceberg write renders float/double partition values differently from iceberg-java, and fails with "File name too long" for large values (#5836)
Area labels: area:writer, area:Iceberg
Rationale: the write fails visibly for values outside [1e-3, 1e7) and the remaining divergence is cosmetic; broken feature on the experimental writer with a workaround, so step 3.
Struct-typed scalar subquery result takes the consuming projection off Comet (widened by Spark 4.2 MergeSubplans) (#5834)
Area labels: area:expressions, performance, spark 4.2
Rationale: an unnecessary fallback that cascades through the plan is a functional gap with correct results, the guide's "missing expression support" example for priority:medium; confirms the author's label.
Duplicate field ids inside a struct are not validated when the file schema equals the requested schema and no predicate is pushed (#5801)
Area labels: area:scan
Rationale: Comet returns rows where Spark raises the duplicate field id error, a missing validation limited to files with no key-value metadata; treated as a functional divergence rather than wrong values, see escalations.
Parquet Variant annotation validation is bypassed when reading as an ordinary struct (#5741)
Area labels: area:scan
Rationale: the reporter confirms an observed missing exception rather than corrupted values, so this is a functional divergence with correct data, step 3.
Iceberg scan falls back to Spark on IS NULL/IS NOT NULL over list/map columns (stale complex-type check) (#5731)
Area labels: area:scan
Rationale: a stale check declines scans iceberg-rust now handles, costing up to 65% on affected queries with results verified correct; a functional gap with a fallback, step 3.
Follow up on post-merge review of the native sequence kernel: perf crossover, unbounded per-batch allocation, and missing ceiling coverage (#5712)
Area labels: area:expressions, performance, test, documentation
Rationale: the native kernel is slower than Spark above roughly a thousand elements per row and can allocate up to 3.3 GB per batch outside the memory pool, a performance regression and a memory-safety gap with correct results; confirms the author's priority:medium.
Re-enable the two ignored CometAggregateSuite metric tests after the DataFusion 55 peak_mem_used change (#5703)
Area labels: area:aggregation, test
Rationale: two metric assertions are disabled after an upstream accounting change, a test failure per the type table; the author's priority:medium was left in place although the guide's default for test-only failures is priority:low.
priority:low
Signed-zero array test fixtures claim the literal case agrees with Spark when it does not (#5702)
Area labels: area:expressions, test
Rationale: misleading comments in test fixtures are a test-only, cosmetic issue, step 4; confirms the author's label.
Enhancements
Fuse OR-connected literal contains predicates on the same input column (#5912)
Area labels: area:expressions, performance
Rationale: a performance optimization proposal for a set of already-native predicates.
Rationale: a performance proposal whose clean fix is upstream in Spark.
Escalations to consider
array_distinct and array_union diverge from Spark on -0.0 for Spark versions without SPARK-54918 (#5701)
Escalated from the author's priority:high to priority:critical: the guide's first decision-tree question is whether the bug can cause silent wrong results, and it does, with no error and no fallback.
Duplicate field ids inside a struct are not validated when the file schema equals the requested schema and no predicate is pushed (#5801)
Labelled priority:medium as a missing validation. If the positional read can attribute one leaf's values to the other field rather than simply succeeding where Spark errors, that is silent wrong results and it should move to priority:critical.
revertToSpark erases CometIcebergWriteExec / CometNativeWriteExec because originalPlan is the node's own child (#5719)
Labelled priority:critical on the data-corruption rule. It is only reachable behind the off-by-default spark.comet.exec.transitionRevert.enabled, so the reviewer may prefer priority:high under the "core path over experimental" principle.
Native metrics from several plan instances in one task overwrite each other (#5879)
Backport candidates for 1.0.x: triage of every PR merged since branch-1.0 was cut (#5815)
A release-management triage record rather than a bug or an enhancement; a reviewer should decide whether it needs a type label at all or whether requires-triage can simply be dropped.
Triage pass over the open
requires-triagequeue, per the project Bug Triage Guide.priority:critical6,priority:high3,priority:medium10,priority:low1Labels have already been applied. A reviewer should spot-check the calls below and close this issue when satisfied; corrections should be made directly on the affected issue.
Notes on label availability and pre-existing labels:
spark 4as a pre-existing area indicator, but the repository only hasspark 4.0/spark 4.1/spark 4.2, so nospark 4label was applied in this pass.area:Icebergexists in the repository but is not in the guide's area table, so it was not added by this pass. Where an issue already carried it, it was left in place and is listed below for context.correctness,performance,test,documentation,question,EPIC,array expressions,map expressions,native_datafusion,spark 4.2), those were left untouched.priority:medium). The guide says only bugs receive a priority label. This pass did not strip them; a reviewer may want to remove them.Bugs
priority:critical
area:expressionsarea:scan,correctness,native_datafusionpriority:critical.area:expressions,correctness,array expressions,map expressionssizereturns-1where Spark returns1with no error, reachable in every configuration; silent wrong results per step 1.area:scanTIMESTAMP_MILLISreads asNULLwhere Spark throwsArithmeticException, a silent wrong result; classified consistently with Checked TIMESTAMP_MILLIS overflow for nested fields and nested-predicate scans is blocked on DataFusion nested-field pruning #5553, the issue it tracks the remainder of.area:writerspark.comet.exec.transitionRevert.enabled, so a reviewer may preferpriority:highon the "core path over experimental" principle.area:expressions,correctness[0.0, 1.0]returned in place of Spark's[0.0, -0.0, 1.0]with no fallback is silent wrong results on 3.4, 3.5 and pre-fix 4.x patch releases; escalated from the author'spriority:high(see escalations below).priority:high
area:scanarea:writerarea:expressionsOption::unwrap()onNonein the truncation kernel is a native panic on a supported code path, the guide's step 2 crash case.priority:medium
area:scanCometCoalesceExecunder-report rows and bytes, a functional defect in existing reporting that does not affect query results; classified consistently with Task input metrics are unreliable when a native block mixes a native scan with a JVM input #5336 and Report native child-operator spill metrics in Spark task metrics for unified shuffle plans #5382.area:expressionsDUPLICATED_MAP_KEYwhere Spark succeeds, a visible functional failure with a workaround (disable the expression), so step 3 applies.area:writer,area:Icebergarea:writer,area:Iceberg[1e-3, 1e7)and the remaining divergence is cosmetic; broken feature on the experimental writer with a workaround, so step 3.area:expressions,performance,spark 4.2priority:medium; confirms the author's label.area:scanarea:scanarea:scanarea:expressions,performance,test,documentationpriority:medium.area:aggregation,testpriority:mediumwas left in place although the guide's default for test-only failures ispriority:low.priority:low
area:expressions,testEnhancements
area:expressions,performancearea:ffi,array expressionsarea:ffi,performancearea:shuffle,performancearea:expressionsarea:ciarea:scanarea:ciarea:scanarea:scanarea:ci,documentation,questionarea:cigit push --force(#5861)documentationtestCometBroadcastExchangeExecis noted as not producing wrong results.area:cispark 4label exists in the repository.area:aggregation,area:expressionsarea:expressionsarea:expressionsarea:expressionsarea:shufflearea:shufflearea:shufflearea:shufflearea:scanarea:scan,area:aggregationarea:expressionsarea:expressions,performanceEPICarea:expressionspriority:mediumthat the guide reserves for bugs.area:aggregationpriority:mediumthat the guide reserves for bugs.area:shufflearea:shufflearea:scanarea:scanarea:scanarea:scanarea:scanarea:scanarea:scanarea:writer,area:Iceberg,EPICarea:writer,area:Icebergarea:writer,area:Icebergarea:writer,area:Icebergarea:Icebergarea:writer,area:ci,area:Icebergarea:writer,area:Icebergperformancearea:writercovers the native writer, which this does not touch.performanceEscalations to consider
priority:hightopriority:critical: the guide's first decision-tree question is whether the bug can cause silent wrong results, and it does, with no error and no fallback.priority:mediumas a missing validation. If the positional read can attribute one leaf's values to the other field rather than simply succeeding where Spark errors, that is silent wrong results and it should move topriority:critical.priority:criticalon the data-corruption rule. It is only reachable behind the off-by-defaultspark.comet.exec.transitionRevert.enabled, so the reviewer may preferpriority:highunder the "core path over experimental" principle.Skipped — needs more info
requires-triagecan simply be dropped.