felipepessoto opened a new issue, #12743:
URL: https://github.com/apache/gluten/issues/12743

   The Delta Spark UT pipeline landed in #12388 (fixes #9296). It runs 
delta-io/delta's `spark`
   test suite against a Gluten Velox bundle and gates each run against a 
committed baseline of
   known failures.
   
   That baseline is currently **735 known failures out of 19,073 tests**. This 
issue tracks the
   work to bring that number down and to improve the pipeline itself. It is a 
tracking issue only —
   discussion belongs in the linked issues.
   
   ## 1. Correctness / offload gaps behind the 735 baseline entries
   
   The largest clusters, counted from `known-failures.txt` by suite:
   
   | Tests | Area | Issue |
   |---:|---|---|
   | 130 | `DescribeDeltaHistorySuite` + `...WithCatalogOwnedBatch100Suite` | 
needs triage |
   | 100 | `stats.DataSkippingDeltaV1*` (7 suite variants, 34 of them 
column-mapping) | needs triage |
   | 64 | `ImplicitMergeCastingSuite` + `ImplicitStreamingMergeCastingSuite` 
(overflow / storeAssignmentPolicy) | needs triage |
   | 42 | `commands.backfill.RowTrackingBackfillConflicts(DV)Suite` | needs 
triage |
   | 14 | `io.delta.tables.DeltaTableHadoopOptionsSuite` — Hadoop FS options | 
#4963 |
   
   Two clusters cut across suites, so they don't show up in the table above 
(counts from the
   triage in #12388): **~226** tests failing on `IncrementMetric` (#9003) and 
**~47** on the Delta
   stats tracker `ClassCastException` when the stats plan can't be offloaded 
(#12538).
   
   Related type-support gap: TIMESTAMP_NTZ (#11622), which is one trigger of 
#12538.
   
   - [ ] #9003 — IncrementMetric
   - [ ] #12538 — Delta stats tracker should fall back instead of throwing
   - [ ] #11622 — TIMESTAMP_NTZ support
   - [ ] #4963 — Hadoop file system options
   - [ ] Triage the `DescribeDeltaHistory`, `ImplicitMergeCasting`, 
`RowTrackingBackfill` and
         `DataSkipping` clusters and file one issue per root cause
   
   ## 2. Native bugs currently worked around in CI
   
   Both of these are *hidden* by the pipeline today, so the workarounds should 
be removed together
   with the fixes.
   
   - [ ] #12377 — DV bitmap aggregator aborts on an invalid row index. 
Currently quarantined by
         error signature in `flaky-error-patterns.txt` (2 patterns). Remove 
those entries when fixed.
   - [ ] #12387 — native memory OOM when reading billions-of-rows tables. Two
         `DeletionVectorsSuite` 2B-row tests are force-failed in 
`setup-delta.sh` to stop them
         OOM-killing the shard. Remove that patch when fixed.
   - [ ] Unsupported operations should induce a **fallback** for Delta plans 
rather than failing
         (raised by @zhztheplayer in #12388; #12538 is the concrete instance)
   
   ## 3. Pipeline improvements
   
   - [ ] **Share the Velox native lib across workflows.** `gluten-delta/**` and
         `backends-velox/src-delta*/**` match both `velox_backend_x86.yml` and 
`delta_spark_ut.yml`,
         so those PRs build the native lib twice (~10 min). Suggested by 
@philo-he and @zhouyuan.
         A cache is preferable to artifact-passing: artifacts are scoped to a 
workflow *run* and
         there is no cross-workflow `needs`, so the Delta workflow would have 
to poll a sibling run
         it races with, whereas a cache populated by push-to-`main` has no 
ordering problem.
         **The key must cover `cpp/**`, the build flags and the base image** — 
unlike ccache, where
         a bad key only costs a rebuild, a stale hit on a prebuilt lib means 
silently testing the
         wrong binary. A miss must fall back to building.
   - [ ] **Cover more Spark versions.** The workflow already takes 
`spark_version` / `delta_ref`
         inputs, and `pom.xml` pairs Spark 3.5→Delta 3.3.2, 4.0→4.0.1, 
4.1→4.1.0. The blocker is the
         baseline: each combination needs its own `known-failures.txt` and a 
bootstrap run.
         Suggested starting point: **Spark 3.5 as a nightly-only second leg**, 
which keeps per-PR
         cost unchanged. Requested by @zhouyuan.
   - [ ] **Remove the overlapping imported Delta suites.** @malinjawi 
identified 8 suites imported
         from delta-io/delta (`DeltaSuite`, `DeleteSQLSuite` + DV variants, 
`UpdateSQLSuite`,
         `DeltaDDLSuite`, `DeltaInsertIntoTableSuite`, 
`ClusteredTableClusteringSuite`,
         `OptimizeMetadataOnlyDeltaQuerySuite`, `OptimizedWritesSuite`) that 
this pipeline now
         duplicates — but **only on the Spark 4.1 leg**. They are the only 
Delta coverage on Spark
         3.5 and 4.0, so this is blocked on the Spark 3.5 leg above. Raised by 
@zhztheplayer.
   - [ ] **Delta 4.3.0 support.** Attempted during #12388: the bundle is 
compiled against Delta
         4.1.0 and hits a binary-incompatible change 
(`IdentityColumn.logTableWrite`, first param
         `Snapshot` → `SnapshotDescriptor`), which `NoSuchMethodError`s on 
every write. Needs the
         bundle built against 4.3.0.
   - [ ] **`run-delta-ci` label opt-in**, if wanted. Dropped in #12388: it 
cannot be expressed as a
         `paths:` filter, so it would require a gate job running `git diff` on 
every PR, and the
         label did not exist on the repo. `workflow_dispatch` covers the same 
need today.
   - [ ] **Drop the upstream cherry-picks** (delta-io/delta#7104 + #7105, 
`FileSourceScanExec` →
         `FileSourceScanLike`) once `DELTA_REF` moves to a release that 
contains them.
         `setup-delta.sh` already skips a cherry-pick that is already applied, 
so this is cleanup.
   
   ## Notes for whoever picks these up
   
   - Refresh the baseline by running **Delta Spark UT (Gluten)** with 
`update_baseline=true` and
     committing the produced artifact; see 
`.github/workflows/util/delta-spark-ut/README.md`.
   - A test that fails **consistently** belongs in `known-failures.txt`. 
`flaky-tests.txt` /
     `flaky-error-patterns.txt` are only for tests that genuinely pass on some 
runs and fail on
     others — quarantining a deterministic failure hides a real bug.
   - The nightly run enforces `fail_on_fixed=true`, so when a fix lands, the 
nightly goes red until
     the now-passing tests are removed from the baseline. That is the intended 
signal.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to