spuru9 opened a new pull request, #29117:
URL: https://github.com/apache/flink/pull/29117

   ## What is the purpose of the change
   
   Fixes the flaky `ProcessTableFunctionSemanticTests` for the 
`process-updating-multi-input` program, which intermittently fails in CI with 
an output mismatch:
   
   ```
   Expecting actual:
     ["+I[Bob, score 2 in city London]", "+U[Bob, score 2 in city Berlin]"]
   to contain exactly in any order:
     ["+I[Bob, score 5 in city London]", "+I[Alice, score 2 in city Zurich]",
      "+U[Bob, score 3 in city London]", "+U[Bob, score 3 in city Berlin]",
      "-D[Bob, null]", "+I[Bob, score 2 in city Berlin]", "-D[Alice, null]"]
   ```
   
   The program runs the two-input updating PTF join `UpdatingJoinFunction` and 
asserts the sink's raw changelog. A two-input operator interleaves its two 
inputs nondeterministically, so the emitted changelog is not fixed — the test 
pinned one interleaving, and an alternate order fails the assertion. The final 
materialized (upsert) result is the same either way.
   
   ## Brief change log
   
   - Assert the materialized result for `process-updating-multi-input` via 
`SinkTestStep#testMaterializedData()` instead of the raw changelog, mirroring 
[FLINK-39729](https://issues.apache.org/jira/browse/FLINK-39729) (PR #28224) 
and the multi-input join programs (`MultiJoinTestPrograms`).
   
   Test-only change; no production code is touched.
   
   ## Verifying this change
   
   The job is awaited to completion, then the sink result is checked. The 
materialized upsert result is order-independent (Bob → `score 2 in city 
Berlin`, Alice deleted), so it no longer depends on cross-input arrival order.
   
   - `ProcessTableFunctionSemanticTests` (72 cases) passed a repeated local 
loop on the same commit that failed in CI (JDK 17), with the 
`process-updating-multi-input` case green every time.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): **no**
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: **no**
     - The serializers: **no**
     - The runtime per-record code paths (performance sensitive): **no**
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: **no**
     - The S3 file system connector: **no**
   
   ## Documentation
   
     - Does this pull request introduce a new feature? **no**
     - If yes, how is the feature documented? **not applicable**
   
   ## AI usage disclosure
   
   - Claude Code
   


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