[jboss-jira] [JBoss JIRA] (JGRP-1905) FORK: RPCs might block if fork channel or fork stack is not available

Bela Ban (JIRA) issues at jboss.org
Mon Jan 12 04:37:49 EST 2015


    [ https://issues.jboss.org/browse/JGRP-1905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031671#comment-13031671 ] 

Bela Ban commented on JGRP-1905:
--------------------------------

Hi Paul,
I looked at this, but don't see a way to fix this in JGroups (it can be fixed in WildFly/Infinispan though... read on).
I cannot send a fork-channel=not-available exception or flag back to the RPC caller as the request message hasn't reached the RequestCorrelator/RpcDispatcher code, so at this point JGroups doesn't know anything about RPCs yet.

However, you could create (and connect) the fork-channel "web" *before* connecting the main-chanel "ee", so the code would not throw an NPE:
{code}
JChannel ee=new JChannel(...);
ForkChannel web=new ForkChannel(ee, "stack", "web");
web.connect("bla");
ee.connect*"bla");
{code}


> FORK: RPCs might block if fork channel or fork stack is not available
> ---------------------------------------------------------------------
>
>                 Key: JGRP-1905
>                 URL: https://issues.jboss.org/browse/JGRP-1905
>             Project: JGroups
>          Issue Type: Bug
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>            Priority: Critical
>             Fix For: 3.6.2
>
>
> When we have nodes A,B,C,D, but fork-stack "fs-2" is not available on B, or fork-channel "ch-3" is not available on B, then an RPC invoked by A on all cluster nodes will time out.
> h5. Solution
> * Throw an exception on B if a fork-stack or -channel is not available on a target node. This way, the RPC would return quickly and B's response would be set to the exception (e.g. "fork channel fc-2 not available").



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the jboss-jira mailing list