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

   ## Purpose of this pull request
   
   Yes, this is a contribution to Apache SeaTunnel.
   
   `IcebergSinkCDCIT` waits `Thread.sleep(30000)` for the CDC source to capture 
the just-inserted row before applying the following `ALTER TABLE ... MODIFY` in 
the multi-column schema-evolution test (cases 2 and 3), and 
`IcebergSinkParallelCommitIT#testRecoveryFromSavepointProducesNoDuplicateSnapshots`
 waits `Thread.sleep(9_000)` (3 x 3s checkpoint interval) hoping at least one 
checkpoint was committed before taking a savepoint. Both waits are open loop: 
under CI load the CDC capture or the first checkpoint commit can take longer 
than the fixed budget, so the schema change is applied before the old-schema 
row was consumed, or the savepoint happens before any commit exists — and the 
later assertions fail intermittently.
   
   This PR replaces the fixed sleeps with bounded Awaitility polling for the 
actual precondition, keeping the scenarios and expected values unchanged:
   
   - `IcebergSinkCDCIT` polls the sink table until the pre-ALTER records (id 
300 / id 400) are visible before applying the schema change (same style as the 
polling already used in the adjacent cases of this test);
   - `IcebergSinkParallelCommitIT` polls 
`collectCheckpointIds(loadRecoveryTable())` until at least one checkpoint was 
committed before the savepoint, which is exactly the invariant the test already 
asserts afterwards.
   
   The now unused `static java.lang.Thread.sleep` import is removed from 
`IcebergSinkCDCIT`.
   
   Searched the open PRs for the same objective (IcebergSinkCDCIT / 
IcebergSinkParallelCommitIT / fixed sleeps) and found no duplicate.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   - `./mvnw spotless:apply`
   - `./mvnw -DskipTests -Dcheckstyle.skip=true -Dlicense.skip=true 
-Dspotless.skip=true -pl 
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-iceberg-e2e test-compile`
   
   The ITs themselves run in the connector E2E CI job (no Docker available in 
the authoring environment); the change only alters how long the tests wait, not 
what they assert.
   


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