Aias00 opened a new issue, #10681:
URL: https://github.com/apache/rocketmq/issues/10681

   ### Before Creating the Bug Report
   
   - [x] I have searched the existing issues and pull requests.
   
   ### Runtime platform environment
   
   All platforms.
   
   ### RocketMQ version
   
   develop branch.
   
   ### JDK Version
   
   Not applicable.
   
   ### Describe the Bug
   
   `GrpcClientSettingsManager.offlineClientLiteSubscription` assumes a lite 
consumer's cached `Settings` always has at least one subscription entry:
   
   ```java
   String topic = 
settings.getSubscription().getSubscriptions(0).getTopic().getName();
   String group = settings.getSubscription().getGroup().getName();
   ```
   
   If a lite consumer has incomplete settings, for example 
`ClientType.LITE_PUSH_CONSUMER` with no subscription entries, this path throws 
an `IndexOutOfBoundsException`. The exception is caught by the broad catch 
block, but the cleanup path then logs an error with the full settings object 
and skips the offline cleanup through an exceptional path.
   
   ### Steps to Reproduce
   
   1. Build `Settings` with `clientType = LITE_PUSH_CONSUMER`.
   2. Do not add any subscription entries.
   3. Call `GrpcClientSettingsManager.offlineClientLiteSubscription(ctx, 
clientId, settings)`.
   4. The method tries to read `getSubscriptions(0)` before validating the 
count.
   
   ### What Did You Expect to See?
   
   Incomplete or malformed lite-consumer settings should be ignored by the 
offline cleanup path before indexing into the subscription list. No 
`IndexOutOfBoundsException` should be needed for control flow.
   
   ### What Did You See Instead?
   
   The method relies on the catch block after `getSubscriptions(0)` throws 
`IndexOutOfBoundsException`, and logs the full settings object at error level.
   
   ### Additional Context
   
   This is a small Proxy gRPC runtime cleanup hardening issue. It keeps client 
disconnect/offline handling from producing noisy error logs for incomplete 
settings and avoids logging full settings unnecessarily.
   


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