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]

Reply via email to