hutiefang76 opened a new pull request, #12997:
URL: https://github.com/apache/seatunnel/pull/12997

   ### Purpose of this pull request
   
   Yes, I am contributing this test-only fix to Apache SeaTunnel. Closes #12959.
   
   The initial/latest-stop case can check the sink value while its bounded job 
is still processing the snapshot. The [original JDK 17 
failure](https://github.com/hutiefang76/seatunnel/actions/runs/39772122616/job/120703047205)
 timed out reading `bulk` instead of the post-snapshot `latest-stop` update. 
The failing source is [commit 
`91d1078a`](https://github.com/hutiefang76/seatunnel/blob/91d1078a3790cf0bcdfbda5cd235c28ec8a95219/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-cdc-mysql-e2e/src/test/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/MysqlCDCStopModeSpecificIT.java#L441-L454),
 with the [existing latest-stop 
configuration](https://github.com/hutiefang76/seatunnel/blob/91d1078a3790cf0bcdfbda5cd235c28ec8a95219/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-cdc-mysql-e2e/src/test/resources/mysqlcdc_stop_mode_latest.conf#L32-L40).
 The [original Failsafe 
reports](https://github.com/hutiefang76/seatunnel/actions/runs/39772122616/artifacts/12467842508)
 are availabl
 e for comparison.
   
   Move the existing `FINISHED` wait and successful job-exit check before the 
final sink-value assertion. The readiness gate, fixture data, seven stop-mode 
cases and existing 120/30/60-second bounds remain unchanged. This follows the 
completion-before-value-check pattern used by the two specific-stop cases. This 
is a test-ordering fix, not evidence of a connector data-loss defect.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. Only `MysqlCDCStopModeSpecificIT.java` changes. The production connector 
and job configurations are unchanged.
   
   ### How was this patch tested?
   
   Final source under test: `d0133119267adeb020fb2182de79a628180346b7`.
   
   - [Native fork 
Build](https://github.com/hutiefang76/seatunnel/actions/runs/40347742877) 
passed. The MySQL CDC [JDK 
11](https://github.com/hutiefang76/seatunnel/actions/runs/40347742877/job/121686573465)
 and [JDK 
17](https://github.com/hutiefang76/seatunnel/actions/runs/40347742877/job/121686573468)
 jobs each executed 141 connector tests with zero failures, errors or skips, 
including all seven `MysqlCDCStopModeSpecificIT` cases. Formatting, license and 
sanity checks passed; unrelated jobs were conditionally skipped.
   - A separate [pinned-source Linux AMD64 
run](https://github.com/hutiefang76/seatunnel/actions/runs/40348992917) 
executed the seven stop-mode cases three consecutive times on the same final 
source, using an outer Temurin 17 JVM, the existing Zeta fixture and real 
MySQL. All 21 executions passed with zero failures, errors or skips. The 
[per-round XML and provenance 
artifact](https://github.com/hutiefang76/seatunnel/actions/runs/40348992917/artifacts/12664314077)
 retains each round separately and checks the exact method set. The fork-only 
validation workflow is not part of this PR.
   - A [real-MySQL negative 
control](https://github.com/hutiefang76/seatunnel/actions/runs/40242101033) on 
earlier source `50c37bd7` deliberately rewrote the target sink value from 
`latest-stop` to `bulk` using database triggers. After `FINISHED` and a 
successful job exit, the unchanged value assertion still failed with its 
original `ConditionTimeoutException`; the database audit recorded one blocked 
write. All seven cases executed: six passed and one produced the expected 
error, with no skips. Its [XML, source hashes, database proof and fault 
diff](https://github.com/hutiefang76/seatunnel/actions/runs/40242101033/artifacts/12617778750)
 are separate from this patch. That negative control was not run on the entire 
final merged tree; the changed test class is byte-identical between those 
revisions.
   - Local final-head checks on macOS ARM64 / JDK 17 passed: root 
`spotless:apply` left the worktree unchanged, and `./mvnw -o -q -DskipTests 
verify` passed. The latter does not execute tests; runtime evidence is listed 
above.
   
   The focused native command, repeated three times, was:
   
   ```sh
   RUN_ENGINES=zeta TEST_IN_PR=true TESTCONTAINERS_RYUK_DISABLED=true \
   ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false \
     -Dlicense.skipAddThirdParty=true -Dskip.ui=true --no-snapshot-updates \
     -pl :connector-cdc-mysql-e2e -am -Pci \
     -Dit.test=MysqlCDCStopModeSpecificIT \
     -DfailIfNoTests=false -Dit.failIfNoSpecifiedTests=false
   ```
   
   Investigation, implementation and automated review were assisted by Codex 
and DeepSeek.
   
   ### Check list
   
   - [x] No new JARs or dependencies; additional License/Notice entries are not 
applicable.
   - [x] No feature, API, configuration or compatibility change; documentation 
and incompatible-change notes are not applicable.
   - [x] Existing E2E fixture and assertions are retained; no connector 
registration change is needed.
   


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