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

Exception thrown in JGroups subsystem when diagnostics address/port and udp address/port aren't distinct

XMLWordPrintable

    • Hide

      When running the AS7 testsuite, in order to avoid this exception, use a default multicast address for diagnostics, IPv4 or IPv6 as required, which is distinct from the multicast address used for the UDP stack.

      Show
      When running the AS7 testsuite, in order to avoid this exception, use a default multicast address for diagnostics, IPv4 or IPv6 as required, which is distinct from the multicast address used for the UDP stack.

      When using JGroups as part of AS7 in the server configuration standalone-ha.xml, upon start up, we receive the exception:

      09:52:36,831 ERROR [org.jboss.msc.service.fail] (pool-14-thread-1) MSC00001: Failed to start service jboss.jgroups.channel.web: org.jboss.msc.service.StartException in service jboss.jgroups.channel.web: java.lang.IllegalArgumentException: diagnostics_addr / diagnostics_port and mcast_addr / mcast_port have to be different
      	at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:62) [jboss-as-clustering-common-7.1.2.Final-SNAPSHOT.jar:7.1.2.Final-SNAPSHOT]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_26]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_26]
      	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_26]
      Caused by: java.lang.IllegalArgumentException: diagnostics_addr / diagnostics_port and mcast_addr / mcast_port have to be different
      	at org.jgroups.protocols.UDP.createSockets(UDP.java:359) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jgroups.protocols.UDP.start(UDP.java:224) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:938) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jgroups.JChannel.startStack(JChannel.java:841) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jgroups.JChannel.connect(JChannel.java:277) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jgroups.JChannel.connect(JChannel.java:261) [jgroups-3.0.9.Final.jar:3.0.9.Final]
      	at org.jboss.as.clustering.jgroups.subsystem.ChannelService.start(ChannelService.java:44) [jboss-as-clustering-jgroups-7.1.2.Final-SNAPSHOT.jar:7.1.2.Final-SNAPSHOT]
      	at org.jboss.as.clustering.msc.AsynchronousService$1.run(AsynchronousService.java:59) [jboss-as-clustering-common-7.1.2.Final-SNAPSHOT.jar:7.1.2.Final-SNAPSHOT]
      

      even when the address / port combination for udp and the address / port combination for diagnostics are distinct:

      <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
          ...
          <socket-binding name="jgroups-diagnostics" port="0" multicast-address="ff0e::1" multicast-port="7500"/>
          <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:ff0e::1}" multicast-port="45700"/>
          <socket-binding name="jgroups-tcp" port="7600"/>
          <socket-binding name="jgroups-tcp-fd" port="57600"/>
          <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:ff0e::1}" multicast-port="45688"/>
          <socket-binding name="jgroups-udp-fd" port="54200"/>
          <socket-binding name="modcluster" port="0" multicast-address="ff0e::1" multicast-port="23364"/>
          ...
      </socket-binding-group>
      

      The expected behaviour is that as long as the ports are distinct, we should be able to use the same mcast address for both udp and diagnostics.

            rhn-engineering-bban Bela Ban
            rachmato@redhat.com Richard Achmatowicz
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: