davidzollo commented on PR #11945:
URL: https://github.com/apache/seatunnel/pull/11945#issuecomment-5579304479

   Sorry for the two-week silence on this — catching it up now.
   
   **Rebase**: this branch was 139 commits behind `dev` with a stale CI result 
from 2026-08-23. Merged current `dev` (`8bea8c681ca`) and pushed `9b33dcbefb1`; 
clean merge, zero conflicts, and `dev` never touched 
`IncrementalSourceEnumerator.java` or `AbstractMysqlCDCITBase.java` in the 
interim, so the diff itself is unchanged.
   
   **Issue 1 (`testMultiTableWithRestore:727` failure) — root cause confirmed 
independently, and I agree with your read.** I pulled the raw container-log 
dump printed just before the failing assertion in the fork CI run 
(`32612293744`) and found the specific `ERROR`-level line that trips 
`containerLogs.contains("ERROR")`:
   
   ```
   ERROR org.apache.seatunnel.e2e.common.container.AbstractTestContainer - 
Container[...] command .../seatunnel.sh ... --restore-with-checkpoint ... 
--set-job-id 902 ... STDERR:
   ```
   
   — followed by ordinary Hazelcast client startup log lines (config loading, 
then a normal "trying ports 5806/5805/5811/5815 until one connects" sequence, 
all `INFO`/`WARNING`, nothing exceptional). `testMultiTableWithRestore` itself 
never uses job id 902, so this line belongs to a *different* test method's job 
— confirming your diagnosis that `container.getServerLogs()` returns the 
cumulative log across the whole shared-container test class, and the new 
`testMysqlCdcParallelSnapshotRestoreAcrossMultipleRounds`'s restore/cancel 
cycle(s) are the plausible source of `ERROR`-level noise (yours found a 
Debezium "sleep interrupted" instance of the same mechanism from the same run; 
either is sufficient to trip the blanket check). The production diff itself 
(`addSplitsBack` → `synchronized` + conditional `assignSplits()`) adds no new 
logging and has no plausible path to this failure.
   
   **Issue 2 (duplicate of #11677) — you're right, and I don't think I should 
just push forward here without addressing it.** I compared file scope: this PR 
touches `IncrementalSourceEnumerator.java` + its unit test + 
`AbstractMysqlCDCITBase.java`. apache/seatunnel#11677 touches the same 
`IncrementalSourceEnumerator.java` method plus `SourceSplitEnumerator.java` 
(Javadoc correction) and `SourceSplitEnumeratorTask.java` (the cross-class 
ordering invariant you mention), and adds its own E2E conf. #11677 is still 
open and shows `MERGEABLE`. This is a real overlap on the same root cause, not 
just a similar idea.
   
   Given that, this needs a maintainer/user decision rather than me picking one 
unilaterally by closing either PR:
   - **Option A** — close this PR in favor of #11677, optionally porting over 
this PR's two deterministic unit tests 
(`shouldAssignRestoredSplitsToWaitingReaderWhenEnumeratorIsRunning` / 
`shouldQueueRestoredSplitsUntilEnumeratorStarts`) to #11677 if they add 
coverage it doesn't already have.
   - **Option B** — keep this PR and fold in the two pieces #11677 has that 
this one doesn't (the `SourceSplitEnumerator` Javadoc fix and the 
`SourceSplitEnumeratorTask` ordering-invariant comment), and additionally fix 
Issue 1 by scoping the log check in `testMultiTableWithRestore` (offset-based, 
the way this file's own `awaitSourceAndMirrorSinkConsistent` scopes query 
results) instead of asserting on the whole shared-container history.
   
   I'm not closing this PR myself; flagging the choice here for whoever makes 
that call. Issue 3 (un-joined `CompletableFuture`s) and Issue 4 (unrelated 
`EngineStateStoreLogicalMetricExportsTest` flake) I agree are non-blocking / 
not caused by this diff.
   
   `./mvnw spotless:apply` run on `connector-cdc-base` after the merge, no 
formatting changes produced.
   


-- 
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]

Reply via email to