SEPURI-SAI-KRISHNA commented on PR #11721:
URL: https://github.com/apache/seatunnel/pull/11721#issuecomment-5397842179

   Reporting back on CI as promised, @SEZ9 @DanielLeens — and thanks for the 
fresh from-scratch re-review, @DanielLeens, particularly the repo-wide re-audit 
for the same bug class rather than trusting my PR description's count.
   
   **Short version: the red build on `f58b34c6c` was not this PR. It was a 
~3-hour window where `dev` itself did not compile. I have re-merged current 
`dev` and the branch is now at `aea9854a1`.**
   
   ## What actually failed
   
   71 of 91 jobs failed on that run, all with the same error, including plain 
`unit-test` on all four JDK/OS matrices:
   
   ```
   
seatunnel-engine-server/src/test/java/org/apache/seatunnel/engine/server/event/JobStateEventTest.java:[165,23]
   error: cannot find symbol
     symbol:   variable FAILED_JOB_EVENT_TIMEOUT_SECONDS
     location: class JobStateEventTest
   ```
   
   `seatunnel-engine-server`'s `testCompile` fails, so every module downstream 
of it dies before running a single test.
   
   @DanielLeens — you asked specifically about `all-connectors-it-1`, so to 
answer it directly rather than by inference: it failed at that exact line, in 
the `run connector-v2 integration test (part-1)` step, with no connector-level 
failure of its own. Same for the other 70.
   
   ## Why it hit this branch
   
   | Time (UTC) | Event |
   |---|---|
   | 2026-08-24 08:48 | this branch merges `dev` at `406c66789` — already 
broken |
   | 2026-08-24 11:50 | `dev` is fixed by `43fe63b1f`, [Fix][Zeta] Fix 
undefined job event timeout constant (#11954) |
   
   The merge landed inside the window. `dev` had the bad symbol at `406c66789` 
and has `RESTORE_TO_FAILED_TIMEOUT_SECONDS` today, so nothing about this PR is 
implicated — its diff touches four files and none of them are in 
`seatunnel-engine-server`. For completeness I checked #11927 and #11937 too: 
both have bases predating the breakage, so only this branch caught it.
   
   ## What I changed
   
   Re-merged `upstream/dev` (now `80b24dc8d`). Only two commits had landed 
since the old merge base and neither touches any file in this PR, so the merge 
was conflict-free and brought in exactly the `43fe63b1f` fix plus an unrelated 
CDC e2e test.
   
   **No source or doc change.** All four files in the diff are byte-identical 
to the `f58b34c6c` state you reviewed — I verified this by blob SHA rather than 
by eye, so your re-review conclusions carry over to `aea9854a1` unchanged. The 
diff is still +120/-24 across the same four files.
   
   Fresh full run underway: 
https://github.com/SEPURI-SAI-KRISHNA/seatunnel/actions/runs/32746106023 — I 
will follow up here only if anything fails for a reason that is genuinely this 
PR's.
   
   ## On your non-blocking notes
   
   - **Issue 1** (`RealtimeMetricsService.decodeQueueTargetVertexId`, 
`Math.abs` on a `long`): agreed on both counts — same shape, and unreachable 
given `actionId` is a bounded DAG-vertex sequence number. Happy to send it as a 
separate defense-in-depth change; deliberately not folding it into this diff.
   - **Issue 2** (Javadoc on `testOrdinaryNegativeHashRoutesToMaskedIndex`): 
happy to add it if you would like it in this PR, though I would rather not push 
a commit for a comment-only change while the branch is otherwise ready to 
merge. Your call.
   - **Issue 3** (shared `nonNegativeMod` helper, +1 from SEZ9): agreed this is 
the real fix for the underlying duplication, and your audit finding that all 
~13 sites hand-roll the mask is exactly the argument for it. It spans several 
unrelated modules, so I would rather land it as its own PR once this one is in, 
than widen a one-line bug fix into a repo-wide refactor.
   
   On the PR-description nit: you are right, and I checked all four rather than 
taking it on trust — DynamoDB, TiDB CDC, Easysearch and Typesense all use 
`return assignCount % numReaders;` over a monotonic `AtomicInteger`, which is a 
counter, not a hash, and is safe for a different reason. I have corrected the 
description.
   
   Re-running the audit myself to fix the list turned up two things worth 
adding to yours. The count of 12 happens to survive, but the membership 
changes: dropping those four and adding 
`BigtableSourceSplitEnumerator.java:386`, `PulsarSplitEnumerator.java:232`, 
`RocketMqSourceSplitEnumerator.java:138`, and the Kafka **sink**'s 
`MessageContentPartitioner.java:52` (distinct from the Kafka source enumerator 
you already listed) gets back to 12. Bigtable is a genuine routing site spelled 
across two lines, which is why a single-line grep misses it, and RocketMQ uses 
the `((x * 31) & 0x7FFFFFFF) % n` variant. There is also a thirteenth masking 
use in `CatalogTableUtils.java:84`, but it builds a primary-key *name* suffix 
rather than routing anything, so I have left it out of the count.
   
   Either way this independently confirms your headline finding: after this PR 
there is no `Math.abs(hash) % n` left anywhere in main code. The only surviving 
`Math.abs` on a routing-ish value is the `RealtimeMetricsService.java:722` site 
you flagged as Issue 1.
   


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