Abhishek Pal created RATIS-2629:
-----------------------------------

             Summary:  Netty RPC server processes requests on the I/O event 
loop and lacks exception handling
                 Key: RATIS-2629
                 URL: https://issues.apache.org/jira/browse/RATIS-2629
             Project: Ratis
          Issue Type: Bug
            Reporter: Abhishek Pal
            Assignee: Abhishek Pal


NettyRpcService handles every inbound request synchronously on the Netty IO 
event-loop thread and its inbound handler does not override exceptionCaught.

This can cause:
- a slow or long-running request occupies the worker thread delaying all other 
requests on that event loop
-  only IOException is converted into an error reply. Any other Throwable 
escapes the handler with no exceptionCaught, Netty's default handling only logs 
it and never writes a reply, so the client blocks until its request timeout.

 The gRPC transport does not have this problem because it drives the 
asynchronous server APIs like appendEntriesAsync instead of blocking the 
transport thread.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to