Repository navigation
Bug triage results: 2026-09-14 #5922
Copy link
Copy link
Closed
Labels
Description
Triage pass over the open requires-triage queue, per the project Bug Triage Guide.
- Date: 2026-09-14
- Total issues processed: 77 (71 triaged, 6 skipped, 0 failed)
- Type counts: 20 bugs, 51 enhancements
- Priority counts applied:
priority:critical6,priority:high3,priority:medium10,priority:low1 - Guide: docs/source/contributor-guide/bug_triage.md
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 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.- 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. - Two enhancements arrived with a priority label already set by the author: Slice arrays before normalizing to avoid allocating over the whole backing buffer #5708 and Establish whether the DataFusion 55 TPC-H off-heap bump is real, and changelog it if so #5704 (both
priority:medium). The guide says only bugs receive a priority label. This pass did not strip them; a reviewer may want to remove them. - Where a bug already carried an author-applied priority that agreed with the guide's decision tree, it was left as is (Native Parquet scan multiplies rows for a struct with duplicate field names #5783, Struct-typed scalar subquery result takes the consuming projection off Comet (widened by Spark 4.2 MergeSubplans) #5834, Follow up on post-merge review of the native sequence kernel: perf crossover, unbounded per-batch allocation, and missing ceiling coverage #5712, Re-enable the two ignored CometAggregateSuite metric tests after the DataFusion 55 peak_mem_used change #5703, Signed-zero array test fixtures claim the literal case agrees with Spark when it does not #5702). One author-applied priority was escalated (array_distinct and array_union diverge from Spark on -0.0 for Spark versions without SPARK-54918 #5701, see below).
Bugs
priority:critical
- 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.
- Area labels:
- 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.
- Area labels:
- 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
sizereturns-1where Spark returns1with no error, reachable in every configuration; silent wrong results per step 1.
- Area labels:
- Track nested-field statistics pruning and TIMESTAMP_MILLIS overflow parity in filtered scans (#5739)
- Area labels:
area:scan - Rationale: an overflowing nested
TIMESTAMP_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 labels:
- 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 preferpriority:highon the "core path over experimental" principle.
- Area labels:
- 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'spriority:high(see escalations below).
- Area labels:
priority:high
- Regular native scan forwards S3 options without checking divergence from Hadoop's resolution (#5662)
- Area labels:
area:scan - Rationale: the native client can read under a different effective identity or endpoint than Spark with no signal, major functional breakage with a security dimension; classified consistently with Native Azure store lets ambient AZURE_* environment variables override or corrupt explicit Hadoop auth config #5542 (Azure ambient credentials).
- Area labels:
- Native Iceberg writes drop Hadoop GCS configuration for HadoopFileIO + gs:// (#5637)
- Area labels:
area:writer - Rationale: the native writer can resolve a different storage identity or endpoint from the JVM writer, so the issue asks for fail-closed behavior; major functional breakage on a production storage path, same category as Regular native scan forwards S3 options without checking divergence from Hadoop's resolution #5662 and Native Azure store lets ambient AZURE_* environment variables override or corrupt explicit Hadoop auth config #5542.
- Area labels:
- timestamp_trunc panics on DST-transition timestamps in a DST timezone (#5633)
- Area labels:
area:expressions - Rationale:
Option::unwrap()onNonein the truncation kernel is a native panic on a supported code path, the guide's step 2 crash case.
- Area labels:
priority:medium
- Native metrics from several plan instances in one task overwrite each other, so a coalesced scan reports only its last partition (#5879)
- Area labels:
area:scan - Rationale: last-writer-wins SQL metrics under
CometCoalesceExecunder-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 labels:
- str_to_map does not honour mapKeyDedupPolicy=LAST_WIN (#5857)
- Area labels:
area:expressions - Rationale: Comet raises
DUPLICATED_MAP_KEYwhere Spark succeeds, a visible functional failure with a workaround (disable the expression), so step 3 applies.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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.
- Area labels:
- 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:mediumwas left in place although the guide's default for test-only failures ispriority:low.
- Area labels:
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.
- Area labels:
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.
- Area labels:
- Support ARRAY in CometSparkToColumnarExec (#5911)
- Area labels:
area:ffi,array expressions - Rationale: new type support at the Spark-to-Comet conversion boundary.
- Area labels:
- Avoid temporary heap allocation when copying off-heap UTF8String into Arrow (#5910)
- Area labels:
area:ffi,performance - Rationale: a performance optimization of the row-to-Arrow writer.
- Area labels:
- Preserve dictionary encoding in Arrow IPC inputs to PyArrow UDFs (#5906)
- Area labels: none
- Rationale: a performance investigation following the fix: decode dictionary input for PyArrow UDFs #5560 fix; no guide area covers the Python UDF transport.
- perf: shuffle reader and writer performance review (native, JVM columnar, reader, Celeborn) (#5905)
- Area labels:
area:shuffle,performance - Rationale: a ranked list of performance improvements, not a defect report.
- Area labels:
- Reduce per-row sorting allocations in multi-entry map_sort normalization (#5900)
- Area labels:
area:expressions - Rationale: a performance optimization of map normalization with bit-identical output.
- Area labels:
- Publish nightly SNAPSHOT jars to repository.apache.org (#5899)
- Area labels:
area:ci - Rationale: a new scheduled workflow, a CI/tooling addition.
- Area labels:
- Support Iceberg tables on HDFS in the native scan (#5894)
- Area labels:
area:scan - Rationale: new storage scheme support in the native Iceberg scan, blocked on upstream iceberg-rust.
- Area labels:
- chore: Clear remaining Scala 2.13 warnings under the strict-warnings profile (#5893)
- Area labels:
area:ci - Rationale: build hygiene work extending the strict-warnings CI job to a 2.13 profile.
- Area labels:
- Support Spark-compatible duplicate Parquet field resolution (#5884)
- Area labels:
area:scan - Rationale: asks to implement Spark's resolution semantics in place of the explicit rejection; the defect itself is tracked as Native Parquet scan multiplies rows for a struct with duplicate field names #5783.
- Area labels:
- Preserve primitive Iceberg pruning beside unsupported complex null conjuncts (#5883)
- Area labels:
area:scan - Rationale: the reporter states it is a performance limitation with correct results, so it is a pruning improvement.
- Area labels:
- Decide how the Delta Lake contrib jar is built, versioned, and published in releases (#5882)
- Area labels:
area:ci,documentation,question - Rationale: a release packaging and tooling decision, not a defect.
- Area labels:
- ci: next set of jobs to move from the PR tier to the merge queue tier (#5870)
- Area labels:
area:ci - Rationale: a CI tiering proposal.
- Area labels:
- Try and discourage use of
git push --force(#5861)- Area labels: none
- Rationale: a contributor guide documentation change.
- Adding a New Operator guide omits the equals/hashCode requirement for Comet plan operators (#5832)
- Area labels:
documentation - Rationale: a documentation addition to the contributor guide.
- Area labels:
- Add a guard test that every CometNativeExec constructor parameter participates in equals (#5831)
- Area labels:
test - Rationale: a new guard test; the live omission it would flag on
CometBroadcastExchangeExecis noted as not producing wrong results.
- Area labels:
- Reduce CI time (Comet is consuming 50% of DataFusion CI, which is a lot) (#5830)
- Area labels:
area:ci - Rationale: a CI cost reduction request.
- Area labels:
- Support Spark 4 EmptyRelationExec as a native input (#5819)
- Area labels: none
- Rationale: new operator support; no
spark 4label exists in the repository.
- feat: support Spark HyperLogLog sketch functions (hll_sketch_agg, hll_union_agg, hll_sketch_estimate, hll_union) (#5814)
- Area labels:
area:aggregation,area:expressions - Rationale: new aggregate and scalar expression support.
- Area labels:
- Add Java-generated Rust parity fixtures for regex crate upgrades (#5813)
- Area labels:
area:expressions - Rationale: new test coverage for the regex whitelist.
- Area labels:
- Measure CometRegex whitelist coverage on representative regex patterns (#5812)
- Area labels:
area:expressions - Rationale: a measurement task to prioritize follow-up work.
- Area labels:
- Add grammar-based differential fuzzing for CometRegex (#5811)
- Area labels:
area:expressions - Rationale: new fuzz-test infrastructure.
- Area labels:
- shuffle_bench should disable parquet view types so its input matches what Comet produces (#5793)
- Area labels:
area:shuffle - Rationale: a benchmark fidelity fix in tooling that does not affect production behavior.
- Area labels:
- Reuse the decoded schema across shuffle blocks instead of re-parsing it per block (#5792)
- Area labels:
area:shuffle - Rationale: a performance optimization of the shuffle reader.
- Area labels:
- Read local shuffle blocks directly in native code instead of copying them through a JVM stream (#5791)
- Area labels:
area:shuffle - Rationale: a performance optimization of the shuffle reader.
- Area labels:
- Return native shuffle partition offsets over JNI instead of through a temp index file (#5790)
- Area labels:
area:shuffle - Rationale: a performance optimization of the shuffle writer.
- Area labels:
- Enable TopK dynamic filter pushdown into native Parquet scans (#5775)
- Area labels:
area:scan - Rationale: a new pushdown optimization.
- Area labels:
- Support dynamic filter pushdown from ungrouped MIN/MAX into native Parquet scans (#5774)
- Area labels:
area:scan,area:aggregation - Rationale: a new pushdown optimization.
- Area labels:
- perf: skip calendar reconstruction in datetime extraction (hour/minute/second, dayofweek/weekday) (#5770)
- Area labels:
area:expressions - Rationale: a performance optimization with bit-identical output.
- Area labels:
- Fuse the SerializeFromObject / MapElements / DeserializeToObject sandwich into a Comet projection instead of falling back (#5710)
- Area labels:
area:expressions,performance - Rationale: new operator coverage via the codegen dispatcher.
- Area labels:
- [EPIC] DataFusion 55 upgrade follow-ups (#5709)
- Area labels:
EPIC - Rationale: a tracking epic whose linked bugs are triaged individually.
- Area labels:
- Slice arrays before normalizing to avoid allocating over the whole backing buffer (#5708)
- Area labels:
area:expressions - Rationale: an allocation optimization; carries an author-applied
priority:mediumthat the guide reserves for bugs.
- Area labels:
- Establish whether the DataFusion 55 TPC-H off-heap bump is real, and changelog it if so (#5704)
- Area labels:
area:aggregation - Rationale: an investigation and changelog task; carries an author-applied
priority:mediumthat the guide reserves for bugs.
- Area labels:
- perf: coalesce small shuffle-read batches before native sort (#5686)
- Area labels:
area:shuffle - Rationale: a performance proposal, currently parked after an end-to-end A/B did not reproduce the win.
- Area labels:
- Investigate: why Comet shuffle files can be larger than Spark's, and whether byte-based block sizing would fix it (#5678)
- Area labels:
area:shuffle - Rationale: an investigation request into shuffle block sizing.
- Area labels:
- Document a capability table for the native Delta reader (#5661)
- Area labels:
area:scan - Rationale: a documentation addition.
- Area labels:
- Deepen v2-checkpoint regression coverage for the native Delta scan (#5660)
- Area labels:
area:scan - Rationale: additional test coverage.
- Area labels:
- Scope object store credentials to execution payloads and selected authorities in the native Delta scan (#5659)
- Area labels:
area:scan - Rationale: contract hardening with no demonstrated leak.
- Area labels:
- Move cloud compatibility gating into a shared helper beside the object store configuration code (#5658)
- Area labels:
area:scan - Rationale: a refactor.
- Area labels:
- Overlap DV bitmap and Parquet footer reads during native Delta scan preparation (#5657)
- Area labels:
area:scan - Rationale: a latency optimization.
- Area labels:
- Preserve compressed bitmap containers when decoding native-format deletion vectors (#5656)
- Area labels:
area:scan - Rationale: a decoding optimization.
- Area labels:
- Support splitting large DV-backed files in the native Delta scan (#5655)
- Area labels:
area:scan - Rationale: new parallelism support.
- Area labels:
- [EPIC] Production-quality native Iceberg writes (#5649)
- Area labels:
area:writer,area:Iceberg,EPIC - Rationale: a tracking epic whose linked bugs are triaged individually.
- Area labels:
- Account the native Iceberg writer's buffers in Comet's memory pool (#5648)
- Area labels:
area:writer,area:Iceberg - Rationale: a memory accounting audit and improvement.
- Area labels:
- Add a native Iceberg write benchmark (#5647)
- Area labels:
area:writer,area:Iceberg - Rationale: new benchmark tooling.
- Area labels:
- Failure-injection tests for native Iceberg writes (#5646)
- Area labels:
area:writer,area:Iceberg - Rationale: new test coverage.
- Area labels:
- Adopt a pin-bump policy for the iceberg-rust dependency (#5645)
- Area labels:
area:Iceberg - Rationale: a process and dependency policy.
- Area labels:
- Enable the split-operator plan and native Iceberg writes by default (#5644)
- Area labels:
area:writer,area:ci,area:Iceberg - Rationale: graduation criteria for a default flip.
- Area labels:
- Decide keep-or-lift for each remaining native Iceberg write eligibility restriction (#5643)
- Area labels:
area:writer,area:Iceberg - Rationale: a scoping decision on the writer's fallback surface.
- Area labels:
- Feed Spark's write path zero-copy row views instead of materializing UnsafeRow (#5625)
- Area labels:
performance - Rationale: a performance optimization of the JVM write path;
area:writercovers the native writer, which this does not touch.
- Area labels:
- Arrow-based clients pay a redundant Arrow -> UnsafeRow -> Arrow round-trip (#5616)
- Area labels:
performance - Rationale: a performance proposal whose clean fix is upstream in Spark.
- Area labels:
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: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.
- Escalated from the author's
- 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: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.
- Labelled
- revertToSpark erases CometIcebergWriteExec / CometNativeWriteExec because originalPlan is the node's own child (#5719)
- Labelled
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.
- Labelled
- Native metrics from several plan instances in one task overwrite each other (#5879)
- Third metric-reporting defect in the same family as 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; consider escalating if these are blocking users from sizing workloads.
Skipped — needs more info
- 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-triagecan simply be dropped.
- 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
- Bug triage results: 2026-08-31 (#5601)
- A previous triage summary awaiting reviewer close-out; not a bug or an enhancement.
- Bug triage results: 2026-08-24 (#5454)
- A previous triage summary awaiting reviewer close-out; note that pass applied no labels and its recommendations may still need applying.
- Bug triage results: 2026-08-17 (#5385)
- A previous triage summary awaiting reviewer close-out; not a bug or an enhancement.
- Bug triage results: 2026-08-11 (#5325)
- A previous triage summary awaiting reviewer close-out; not a bug or an enhancement.
- Bug triage results: 2026-08-03 (#5231)
- A previous triage summary awaiting reviewer close-out; not a bug or an enhancement.
Reactions are currently unavailable
Activity
andygrove commentedon Sep 27, 2026
The labels from this pass were applied when it ran, so I'm closing this. Any corrections can go on the individual issues.