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.
Note: where an issue already carried a priority label applied by its author, that label was left in place. Per the guide, this process adds a priority label to bugs only.
Bugs
priority:critical
Checked TIMESTAMP_MILLIS overflow for nested fields and nested-predicate scans is blocked on DataFusion nested-field pruning (#5553)
Area labels: area:scan
Rationale: nested-field and nested-predicate scans keep overflow-to-NULL where Spark's Math.multiplyExact throws, which is a silent wrong result under decision-tree step 1, even though the fix is blocked on upstream nested-field pruning.
Match Spark ObjectHashAggregate decimal AVG buffer semantics (#5509)
Area labels: area:aggregation
Rationale: grouped high-precision decimal AVG returns a different value from Spark with no error when Spark uses ObjectHashAggregateExec, a silent wrong result.
Match Spark ordering and rank semantics for floating values nested in arrays and structs (#5507)
Area labels: area:expressions
Rationale: nested -0.0/NaN comparison keys give different ORDER BY and RANK() output from Spark with no error, a silent wrong result.
Support Spark-compatible Unicode case-insensitive Parquet field matching (#5495)
Area labels: area:scan
Rationale: filed as a feature request, but the content is a correctness divergence — the native adapter's ASCII-only eq_ignore_ascii_case can miss a present physical column and return SQL NULL instead of the stored value under spark.sql.caseSensitive=false.
Date-to-timestamp casts can overflow or panic for wide dates (#5456)
Area labels: area:expressions
Rationale: unchecked multiplication wraps to a bogus timestamp in release builds where Spark throws, which is a silent wrong result; the second reproducer additionally panics.
priority:high
Native Azure store lets ambient AZURE_* environment variables override or corrupt explicit Hadoop auth config (#5542)
Area labels: area:scan
Rationale: ambient env credentials silently win over explicitly configured Hadoop auth, so Comet and Spark can resolve different identities for the same table; major functional breakage with a security dimension.
Iceberg native scan claims schemes it cannot execute; three scheme lists disagree (#5541)
Area labels: area:scan
Rationale: a gcs/abfs/abfss/wasb/wasbs Iceberg table passes validation, is claimed, and then every task dies with CometNativeException, while stock Spark reads it fine — major functional breakage on supported storage.
priority:medium
Fix remaining reported issues for arrays of map (#5544)
Area labels: area:expressions
Rationale: post-merge review of feat: support Map for CreateArray literal #5452 (merged) finds newly admitted complex literals and a deepNullable cast that changes Slice's nested map type while Slice still declares the original element type; a functional bug with a fallback workaround.
Iceberg native scan fails queries on tables whose column names are case-distinct to Java but not to Rust (#5540)
Area labels: area:scan
Rationale: Rust's newer Unicode data folds columns Java keeps distinct, so the query dies with _LEGACY_ERROR_TEMP_2093 — visible breakage with a fallback workaround.
Native Celeborn shuffle: validate_remote_schema rejects dictionary shapes the shuffle writer can emit (#5536)
Area labels: area:shuffle
Rationale: local and remote readers disagree about valid frames, so a frame that reads locally fails on Celeborn; a broken feature, and the path is not yet enabled end to end.
NativeUtil.getNextBatch leaks Arrow structs when importVector fails (#5534)
Area labels: area:ffi, area:shuffle
Rationale: the third exit from getNextBatch is unguarded, leaking C data and wrapper buffers on every native operator path; resource exhaustion rather than wrong results or an immediate crash.
unbase64 can fail on rows skipped by LIMIT and semi/anti joins (#5532)
Area labels: area:expressions
Rationale: batch-at-a-time evaluation turns a query Spark completes into a decode failure; a visible functional bug with an expression-level opt-out.
Native Celeborn shuffle: the installed Celeborn bootstrap hook can break client creation for the whole executor (#5529)
Area labels: area:shuffle
Rationale: a Comet-specific bootstrap failure is fatal to all Celeborn client creation on the executor; scoped medium because the native Celeborn path is not enabled end to end yet (see escalations).
Native Celeborn shuffle: reflectively replacing Celeborn's final fields can release push admission while payloads are in flight (#5528)
Area labels: area:shuffle
Rationale: reflective assignment to four private final Celeborn fields can release admission early; a broken feature on a path that is not yet enabled.
Native Celeborn shuffle: default maxFrameBytes of 64 MiB is unreachable, and a large row fails the whole job (#5527)
Area labels: area:shuffle
Rationale: the two shipped defaults cannot both hold, and the consequence for a large row is a failed job rather than a slow one; configurable, so a workaround exists.
Comet native broadcast fails under spark.kryo.registrationRequired=true (#5510)
Area labels: none
Rationale: Array[ChunkedByteBuffer] is unregistered so broadcast throws outright; broken feature, worked around by not setting that Kryo option.
Avoid object-store cache and registry collisions across backends and configurations (#5502)
Area labels: area:scan
Rationale: the cache key omits the backend, so a second URL can be served the first URL's store and the DataFusion registry can replace a mapping; a functional bug reachable only with mixed fs.comet.libhdfs.schemes routing.
Large-offset Arrow vectors from PyArrow UDFs cannot be serialized for broadcast or collect (#5488)
Area labels: area:ffi
Rationale: Utils.getFieldVector throws Unsupported Arrow Vector for serialize for representations Comet deliberately produces elsewhere; visible failure on a narrow path.
AQE + DPP + spark.comet.exec.transitionRevert.enabled fails with "SubqueryAdaptiveBroadcastExec does not support the execute() code path" (#5486)
Area labels: none
Rationale: reversion leaves the plan in a state where PlanAdaptiveDynamicPruningFilters no longer matches, failing the query; gated on a non-default config, so a workaround exists.
CometExecRule overwrites direct AQE LogicalQueryStage links during replanning (#5482)
Area labels: none
Rationale: unconditional restoration of originalPlan.logicalLink breaks the correspondence between the current physical root and the active logical stage; a planner defect with no reported wrong-result or crash path.
priority:low
Surface Parquet TIMESTAMP_MILLIS overflow as a Spark-faithful exception instead of a raw Arrow error (#5517)
Area labels: area:scan
Rationale: the value is correctly rejected, only the exception type and message diverge from Spark's ArithmeticException("long overflow"); error-fidelity, no wrong results.
Cancel background batch producers before collecting final plan metrics (#5504)
Area labels: area:ffi
Rationale: a drop-time metric guard can update counters after the final snapshot, so the reported metrics are incomplete; observability only.
Explain ObjectHashAggregate fallback when Comet shuffle is disabled (#5500)
Area labels: area:aggregation
Rationale: the shuffle guard bypasses withFallbackReason, so the strict check can report an unannotated decline; a diagnostics gap, not an execution defect.
Track provenance of fallback reasons copied through shared expression nodes (#5499)
Area labels: area:expressions
Rationale: a stale FALLBACK_REASONS tag on a shared node can satisfy reportUnexplainedFallback and hide an unexplained fallback; diagnostics only.
Enhancements
Derive a native UDF's return type from the library instead of requiring the caller to declare it (#5597)
Area labels: area:udf (pre-existing)
Rationale: an API ergonomics improvement to the native UDF registration surface; nothing is broken today.
Native Azure store lets ambient AZURE_* environment variables override or corrupt explicit Hadoop auth config (#5542)
The guide lists security vulnerabilities under priority:critical. Ambient environment variables silently overriding an explicitly configured service principal (including the AKS workload-identity webhook case, where the configured client secret is dropped) is an identity-selection issue with a security dimension. Filed priority:high; a reviewer may want to escalate.
Date-to-timestamp casts can overflow or panic for wide dates (#5456)
Matches the guide's escalation trigger in reverse: it both panics (NaiveDate + TimeDelta overflowed) and, in release builds, silently wraps to a wrong timestamp. Filed priority:critical on the wrong-result path.
Native Celeborn shuffle: the installed Celeborn bootstrap hook can break client creation for the whole executor (#5529)
Checked TIMESTAMP_MILLIS overflow for nested fields and nested-predicate scans is blocked on DataFusion nested-field pruning (#5553)
Filed priority:critical on the silent-wrong-result rule, but the fix is blocked on upstream DataFusion nested-field pruning, so the priority reflects impact rather than actionability.
A prior triage summary, not a bug or an enhancement, so no type label applies. requires-triage left in place. Note that pass applied no labels (its token lacked label write access), so its 28 issues were re-triaged in this pass. A reviewer should close it.
Triage pass over the open
requires-triagequeue, per the project Bug Triage Guide.priority:critical5,priority:high2,priority:medium13,priority:low4Labels 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.
Note: where an issue already carried a priority label applied by its author, that label was left in place. Per the guide, this process adds a priority label to bugs only.
Bugs
priority:critical
area:scanMath.multiplyExactthrows, which is a silent wrong result under decision-tree step 1, even though the fix is blocked on upstream nested-field pruning.area:aggregationObjectHashAggregateExec, a silent wrong result.area:expressions-0.0/NaN comparison keys give differentORDER BYandRANK()output from Spark with no error, a silent wrong result.area:scaneq_ignore_ascii_casecan miss a present physical column and return SQL NULL instead of the stored value underspark.sql.caseSensitive=false.area:expressionspriority:high
area:scanarea:scangcs/abfs/abfss/wasb/wasbsIceberg table passes validation, is claimed, and then every task dies withCometNativeException, while stock Spark reads it fine — major functional breakage on supported storage.priority:medium
area:expressionsCreateArrayliteral #5452 (merged) finds newly admitted complex literals and adeepNullablecast that changes Slice's nested map type while Slice still declares the original element type; a functional bug with a fallback workaround.area:scan_LEGACY_ERROR_TEMP_2093— visible breakage with a fallback workaround.area:shufflearea:ffi,area:shufflegetNextBatchis unguarded, leaking C data and wrapper buffers on every native operator path; resource exhaustion rather than wrong results or an immediate crash.area:expressionsarea:shufflearea:shuffleprivate finalCeleborn fields can release admission early; a broken feature on a path that is not yet enabled.area:shuffleArray[ChunkedByteBuffer]is unregistered so broadcast throws outright; broken feature, worked around by not setting that Kryo option.area:scanfs.comet.libhdfs.schemesrouting.area:ffiUtils.getFieldVectorthrowsUnsupported Arrow Vector for serializefor representations Comet deliberately produces elsewhere; visible failure on a narrow path.PlanAdaptiveDynamicPruningFiltersno longer matches, failing the query; gated on a non-default config, so a workaround exists.originalPlan.logicalLinkbreaks the correspondence between the current physical root and the active logical stage; a planner defect with no reported wrong-result or crash path.priority:low
area:scanArithmeticException("long overflow"); error-fidelity, no wrong results.area:ffiarea:aggregationwithFallbackReason, so the strict check can report an unannotated decline; a diagnostics gap, not an execution defect.area:expressionsFALLBACK_REASONStag on a shared node can satisfyreportUnexplainedFallbackand hide an unexplained fallback; diagnostics only.Enhancements
area:udf(pre-existing)area:udf(pre-existing)apache/datafusionandapache/datafusion-python; no functional impact.next_dayandlevenshteinfall back to Spark on collated strings (#5591)area:expressionsmap_sortfalls back to Spark for non-scalar map key types (#5590)area:expressionsmap_from_arraysfalls back to Spark undermapKeyDedupPolicy=LAST_WIN, unlikemap_from_entries(#5589)area:expressionsCodegenDispatchFallbackmixin for parity with a sibling serde.timestamp_secondsfalls back to Spark for decimal, byte and short input (#5588)area:expressionsabson interval types falls back to Spark (#5587)area:expressionsgood first issue.named_structwith duplicate field names falls back to Spark (#5586)area:expressionstranslatefalls back to Spark by default instead of using the codegen dispatcher like the other string functions (#5585)area:expressionsIncompatiblemarking is correct, the ask is dispatcher coverage.length/bit_length/octet_lengthfall back to Spark on binary input (#5584)area:expressionsarrays_zipfalls back to Spark for map element types (#5583)area:expressionsArraysBasetype gate) (#5582)area:expressionssha2for a non-literalnumBits(#5581)area:expressionsmap_col[key],element_at) (#5580)area:expressionslpad/rpadwith a non-literalpadargument falls back to Spark (#5579)area:expressionsto_csvnever runs inside Comet by default, unliketo_json/from_csv/schema_of_csv(#5578)area:expressionsunix_timestampon string input falls back to Spark, whileto_unix_timestampalready uses the codegen dispatcher (#5577)area:expressionsroundon float/double falls back to Spark, whilebroundalready uses the codegen dispatcher (#5576)area:expressionsStaticInvokeandInvokethrough the codegen dispatcher instead of falling back (#5575)area:expressionsconvert, so serdes that decline there never get a dispatch attempt (#5574)area:expressionsarea:expressionsarea:expressionsarea:scanarea:ciarea:ciarea:shufflearea:scanarea:scanarea:scanarea:scan,area:ffiarea:ffiarea:scanarea:shufflearea:shufflearea:expressionsarea:scanarea:scanarea:expressionsarea:expressionsarea:ciarea:scanarea:scanFairSpillPool; deliberately left out of the focused [EPIC] Memory pool and accounting audit sweep #5212 fix.area:shuffleEscalations to consider
priority:critical. Ambient environment variables silently overriding an explicitly configured service principal (including the AKS workload-identity webhook case, where the configured client secret is dropped) is an identity-selection issue with a security dimension. Filedpriority:high; a reviewer may want to escalate.NaiveDate + TimeDelta overflowed) and, in release builds, silently wraps to a wrong timestamp. Filedpriority:criticalon the wrong-result path.priority:mediumbecause the native Celeborn path is not enabled end to end yet (see Native Celeborn shuffle: the remote read path costs up to 4.5x local decode and is unbenchmarked #5535); escalate topriority:highonce it ships enabled.priority:criticalon the silent-wrong-result rule, but the fix is blocked on upstream DataFusion nested-field pruning, so the priority reflects impact rather than actionability.Skipped — needs more info
requires-triageleft in place. Note that pass applied no labels (its token lacked label write access), so its 28 issues were re-triaged in this pass. A reviewer should close it.requires-triagewas left in place.requires-triagewas left in place.requires-triagewas left in place.