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

   ### Describe the Bug
   
   `GrpcServerBuilder` creates boss and worker `EventLoopGroup`s and supplies 
them to gRPC's `NettyServerBuilder`. However, `GrpcServer.shutdown()` only 
shuts down the gRPC server and never closes these groups.
   
   The gRPC builder does not take ownership of explicitly supplied event loop 
groups. As a result, shutting down the Proxy gRPC server while keeping the JVM 
alive leaves its event loop threads running. Repeated server creation and 
shutdown can accumulate leaked threads and selector resources.
   
   ### RocketMQ Version
   
   `develop` at `93c6d96f90`.
   
   ### Steps to Reproduce
   
   1. Initialize the Proxy configuration and TLS certificate manager.
   2. Build a server through `GrpcServerBuilder.newBuilder(...)` and start it.
   3. Send a gRPC request to establish a connection and exercise the worker 
loop.
   4. Call `GrpcServer.shutdown()` while keeping the JVM alive.
   5. Inspect the event loop threads after shutdown.
   
   ### Expected Behavior
   
   The boss and worker groups created for the server should terminate when the 
server is shut down.
   
   ### Actual Behavior
   
   The gRPC server terminates, but its internally created event loop groups are 
not shut down and their threads remain alive.
   
   ### Runtime Environment
   
   Source path verified on macOS with JDK 11 and gRPC Java 1.53.0. The 
ownership issue applies to both NIO and Epoll groups.
   


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