[
https://issues.jboss.org/browse/JGRP-1332?page=com.atlassian.jira.plugin....
]
Bela Ban updated JGRP-1332:
---------------------------
Description:
Scenario 1 : Let's A and B be 2 jgroups members connected to the same channels
"rpc". Member A uses an
MuxRpcDispatcher with topic id 1 and Member B uses an MuxRpcDispatcher with different
topic id, 2 for example. Channel configuration file is « udp.xml ».
When Member A sends a multicast rpc call (mode = GET_ALL) with no filter (null), I
observed that server object on member B was invoked although it doesn't have the same
topic as caller from member A.
To better observe invocations, I deployed the attached sample program (Launcher.java) on
different machine (member A hosted by 192.168.46.36 and member B hosted by 192.168.46.38)
and disable local invocation on channel ( channel.setOpt(Channel.LOCAL, false)). I also
use a kind of jgroups sniffer (on host of member B) that logs members exchange. See
enclosed file RpcTopic-1ToTopic_2_NoMuxUpHandler.log). Note that topic should be
different, so you need to modify sample code before execution on member A or B.
Scenario 2: roughly, the same as the previous one. Just set an UpHandler to the channel :
channel.setUpHandler(new MuxUpHandler());
I observed that:
- Object server on member B wasn't invoked (expected behavior).
- Member B didn't respond at all. May be it should send back an ack. See
RpcTopic-1ToTopic_2_WithMuxUpHandler.log file.
- The invoker (or caller) runs until the timeout kicks in. Or block for ever if timeout =
0. Execution shouldn't runs out "immediately" ?
was:
Scenario 1 : Let's A and B be 2 jgroups members connected to the same channels
"rpc". Member A uses an
MuxRpcDispatcher with topic id 1 and Member B uses an MuxRpcDispatcher with different
topic id, 2 for example. Channel configuration file is « udp.xml ».
When Member A sends a multicast rpc call (mode = GET_ALL) with no filter (null), I
observed that server object on member B was invoked although it doesn't have the same
topic as caller from member A.
To better observe invocations, I deployed the attached sample program (Launcher.java) on
different machine (member A hosted by 192.168.46.36 and member B hosted by 192.168.46.38)
and disable local invocation on channel ( channel.setOpt(Channel.LOCAL, false);). I also
use a kind of jgroups sniffer (on host of member B) that logs members exchange. See
enclosed file RpcTopic-1ToTopic_2_NoMuxUpHandler.log). Note that topic should be
different, so you need to modify sample code before execution on member A or B.
Scenario 2: roughly, the same as the previous one. Just set an UpHandler to the channel :
channel.setUpHandler(new MuxUpHandler());
I observed that:
- Object server on member B wasn't invoked (expected behavior).
- Member B didn't respond at all. May be it should send back an ack. See
RpcTopic-1ToTopic_2_WithMuxUpHandler.log file.
- The invoker (or caller) runs until the timeout kicks in. Or block for ever if timeout =
0. Execution shouldn't runs out "immediately" ?
MuxRpcDispatcher: use of topics disturbs invocations
----------------------------------------------------
Key: JGRP-1332
URL:
https://issues.jboss.org/browse/JGRP-1332
Project: JGroups
Issue Type: Bug
Affects Versions: 2.12.1
Reporter: Benoit Leblanc
Assignee: Bela Ban
Fix For: 3.1
Attachments: Launcher.java, RpcTopic-1ToTopic_2_NoMuxUpHandler.log,
RpcTopic-1ToTopic_2_WithMuxUpHandler.log
Scenario 1 : Let's A and B be 2 jgroups members connected to the same channels
"rpc". Member A uses an
MuxRpcDispatcher with topic id 1 and Member B uses an MuxRpcDispatcher with different
topic id, 2 for example. Channel configuration file is « udp.xml ».
When Member A sends a multicast rpc call (mode = GET_ALL) with no filter (null), I
observed that server object on member B was invoked although it doesn't have the same
topic as caller from member A.
To better observe invocations, I deployed the attached sample program (Launcher.java) on
different machine (member A hosted by 192.168.46.36 and member B hosted by 192.168.46.38)
and disable local invocation on channel ( channel.setOpt(Channel.LOCAL, false)). I also
use a kind of jgroups sniffer (on host of member B) that logs members exchange. See
enclosed file RpcTopic-1ToTopic_2_NoMuxUpHandler.log). Note that topic should be
different, so you need to modify sample code before execution on member A or B.
Scenario 2: roughly, the same as the previous one. Just set an UpHandler to the channel
:
channel.setUpHandler(new MuxUpHandler());
I observed that:
- Object server on member B wasn't invoked (expected behavior).
- Member B didn't respond at all. May be it should send back an ack. See
RpcTopic-1ToTopic_2_WithMuxUpHandler.log file.
- The invoker (or caller) runs until the timeout kicks in. Or block for ever if timeout =
0. Execution shouldn't runs out "immediately" ?
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira