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)