-
Bug
-
Resolution: Duplicate
-
Major
-
7.0.0.Final
-
None
Starting pristine EDG trunk throws:
Caused by: java.lang.IllegalArgumentException: the following properties in PING are not recognized: {bind_addr=127.0.0.1} at org.jgroups.stack.Configurator.createLayer(Configurator.java:460) at org.jgroups.stack.Configurator.createProtocols(Configurator.java:393) at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:88) at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55) at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:534) at org.jgroups.JChannel.init(JChannel.java:1725) ... 30 more
Full stacktrace in https://gist.github.com/1139341
The problem is with the following piece of code in JChannelFactory:
for (ProtocolConfiguration protocol: this.configuration.getProtocols()) { config = this.createProtocol(protocol); binding = protocol.getSocketBinding(); if (binding != null) { this.configureBindAddress(protocol, config, binding); this.configureServerSocket(protocol, config, "bind_port", binding); this.configureServerSocket(protocol, config, "start_port", binding); this.configureMulticastSocket(protocol, config, "mcast_addr", "mcast_port", binding); } else if (transport.getSocketBinding() != null) { // If no socket-binding was specified, use bind address of transport this.configureBindAddress(protocol, config, transport.getSocketBinding()); } configs.add(config); }
In particular, is the "transport.getSocketBinding() != null". Our transport has a socket binding associated to it and so this returns true when inspecting PING protocol. As a result, bind_addr is added to PING which is not right. Not 100% sure what the fix exactly should look like, but you shouldn't set a property on a protocol that does not have it.
Not sure either what's triggering this because Michal is doing QE testing without any problems.