Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-1513

PING incorrectly populated with bind_addr property

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • 7.0.1.Final
    • 7.0.0.Final
    • Clustering
    • 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.

              pferraro@redhat.com Paul Ferraro
              rh-ee-galder Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: