The GitHub Actions job "Build" on rocketmq-flink.git/direct-connect-stability 
has succeeded.
Run started by GitHub user lizhimins (triggered by lizhimins).

Head commit for run:
3d8b17c11ce120d3dab557f2b0581cea3be4ef98 / lizhimins <[email protected]>
[ISSUE #151] fix(remoting): make split assignment and partition discovery 
survive direct-connect route races

Two silent defects surface when the client talks to NameServers directly
(open-source deployment, no proxy):

1. Starting offsets are ignored for a random subset of queues.
   RebalancePullImpl.computePullFromWhereWithException is hard-coded to 0,
   so assign() lets the client-internal rebalance thread dispatch a first
   pull from offset 0 while handleSplitsChanges is still seeking to the
   configured starting offset. No Flink-side lock scope can win that race.
   Enforce the starting offset deterministically at the fetch() outlet
   instead: records below max(startingOffset, 0) are dropped there, and
   seek() remains as a traffic optimization.

2. A NameServer outage restarts the job and rewinds offsets. The periodic
   partition discovery flattened per-topic route fetch failures into an
   empty queue set; diffed against the allocated set that revokes every
   split, and the queues returning after recovery are re-initialized from
   scratch (observed: +150 replayed records). A failed fetch says nothing
   about the actual route: exclude failed topics from the round, skip the
   round when every topic failed, and keep the current assignment when an
   empty result arrives while queues are allocated. Genuine deletions
   surface again on later rounds.

Also document that EXACTLY_ONCE is not supported on proxy-fronted
endpoints (transaction state lives in per-proxy-process memory and is
silently dropped), while direct deployments do support it.

Cluster verification of the outage scenario after the fix: job RUNNING
throughout the 60s NameServer stop, zero split decreases, zero replay
(sink grew exactly by the second wave), producer recovered within 150s
of the NameServer coming back.

Report URL: https://github.com/apache/rocketmq-flink/actions/runs/40826307202

With regards,
GitHub Actions via GitBox

Reply via email to