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]
