sun-9545sunoj commented on PR #12340: URL: https://github.com/apache/seatunnel/pull/12340#issuecomment-5708802532
Thanks so much for the thorough review and for decompiling the client to
trace the %RETRY%GroupName behavior! You are completely right about the
autoCreateSubscriptionGroup=false edge case.
I've updated the PR to address all your blocking and minor points:
1. Transient vs Permanent (Bounded Retry): I removed the faulty topicExist
check. Instead, I added a bounded retry loop directly around
examineConsumeStats for TOPIC_NOT_EXIST. It will retry up to 3 times
(with 1s, 2s, and 3s backoffs) to smooth over genuine name-server
propagation delays. If it still fails, it propagates the error. This prevents
the crash-loop for temporary blips, but correctly fails for
unprovisioned subscription groups.
2. Clearer Error Message: If the retry budget is exhausted, the exception
is now wrapped with a highly specific message explicitly mentioning: "Consumer
group offset lookup failed for topic '%s' because
route info for the group could not be resolved (transient name server
delay or subscription group not provisioned).". This should make triage instant
for operators hitting the
autoCreateSubscriptionGroup=false case (ROCKETMQ-09).
3. Test Coverage:
• Added RocketMqAdminUtilTest which mocks the underlying
DefaultMQAdminExt to verify the retry backoff and the final exception
structure.
• Extended RocketMqSourceSplitEnumeratorTest with
testRun_propagatesExceptionWhenGroupOffsetsLookupFails, proving that when the
admin util throws, the enumerator run() correctly propagates the failure
instead of falling back to the first offset.
Let me know if this looks good to you!
--
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]
