[
https://issues.jboss.org/browse/JGRP-1905?page=com.atlassian.jira.plugin....
]
Paul Ferraro edited comment on JGRP-1905 at 1/9/15 10:09 AM:
-------------------------------------------------------------
Hey Bela, I need to boost the priority of this...
Infinispan 7.0.3 made a change that results in an immediate RPC on view change.
https://github.com/infinispan/infinispan/commit/37058d94fe8b52fc6aacd6aa9...
Here's what I'm seeing:
# Node 1 starts.
# Node 1 creates and connects channel "ee".
# Node 1 creates fork channel "web" using channel "ee".
# Node 1 starts Infinispan's transport and connects fork channel "web" and
starts its cache.
# Node 2 starts.
# Node 2 creates and connects its "ee" channel.
# The Infinispan transport on node 1 detects the view change and sends an RPC via its
"web" fork channel
# The RPC is received by Node 2, but the "web" fork does not yet exist for its
"ee" channel, triggering an NPE in ForkProtocolStack.up(Event):
https://github.com/belaban/JGroups/blob/master/src/org/jgroups/fork/ForkP...
... since, in this case, get(hdr.getForkChannelId()) returns null.
# Node 2 creates fork channel "web" using channel "ee".
# Node 2 starts Infinispan's transport and connects fork channel "web" and
starts its cache.
# The RPC initiated on Node 1 times out waiting for responses.
was (Author: pferraro):
Hey Bela, I need to boost the priority of this...
Infinispan 7.0.3 made a change that results in an immediate RPC on view change.
https://github.com/infinispan/infinispan/commit/37058d94fe8b52fc6aacd6aa9...
Here's what I'm seeing:
# Node 1 starts.
# Node 1 creates and connects channel "ee".
# Node 1 creates fork channel "web".
# Node 1 starts Infinispan's transport and connects fork channel "web" and
starts its cache.
# Node 2 starts.
# Node 2 creates and connects its "ee" channel.
# The Infinispan transport on node 1 detects the view change and sends an RPC using its
"web" fork channel
# The RPC is received by Node 2, but the "web" fork does not yet exist
triggering an NPE in ForkProtocolStack.up(Event):
https://github.com/belaban/JGroups/blob/master/src/org/jgroups/fork/ForkP...
... since, in this case, get(hdr.getForkChannelId()) returns null.
# Node 2 creates fork channel "web".
# Node 2 starts Infinispan's transport and connects fork channel "web" and
starts its cache.
# The RPC initiated on Node 1 times out waiting for responses.
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)