[
https://issues.apache.org/jira/browse/RATIS-2629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Abhishek Pal updated RATIS-2629:
--------------------------------
Summary: Netty RPC processes requests on the IO event loop and lacks
exception handling (was: Netty RPC server processes requests on the I/O event
loop and lacks exception handling)
> Netty RPC processes requests on the IO 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
> Priority: Major
>
> 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)