Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-11195

DR19 Cluster behaves differently when trying to use already used IP/port for "jgroups-udp" socket-binding

    Details

    • Type: Clarification
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 7.1.0.DR19
    • Fix Version/s: 7.1.0.DR19
    • Component/s: Clustering
    • Labels:
      None

      Description

      There are some tests which start a cluster of two EAP servers, using standalone-full-ha.xml profile. Rather than using a port offset, EAP servers are started in this way:

      node1
      sh bin/standalone.sh -Djboss.bind.address=$IP -Djboss.bind.address.unsecure=$IP -Djboss.bind.address.management=$IP -Djboss.messaging.cluster.password=password -Djboss.node.name=node1 -c standalone-full-ha.xml 
      
      node2
      sh bin/standalone.sh -Djboss.messaging.cluster.password=password -Djboss.node.name=node2 -c standalone-full-ha.xml
      

      The node, which is started second logs this error while being started in DR19 (it did not log this error in DR18):

      15:32:14,103 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 74) MSC000001: Failed to start service org.wildfly.clustering.jgroups.channel.ee: org.jboss.msc.service.StartException in service org.wildfly.clustering.jgroups.channel.ee: java.lang.Exception: failed to open a port in range 55200-55200
              at org.jboss.as.clustering.jgroups.subsystem.ChannelBuilder.start(ChannelBuilder.java:127)
              at org.wildfly.clustering.service.AsynchronousServiceBuilder.lambda$start$0(AsynchronousServiceBuilder.java:99)
              at org.wildfly.clustering.service.AsynchronousServiceBuilder$$Lambda$695/1973869844.run(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
              at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      Caused by: java.lang.Exception: failed to open a port in range 55200-55200
              at org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:503)
              at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
              at org.jgroups.protocols.UDP.start(UDP.java:266)
              at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:966)
              at org.jgroups.JChannel.startStack(JChannel.java:889)
              at org.jgroups.JChannel._preConnect(JChannel.java:553)
              at org.jgroups.JChannel.connect(JChannel.java:288)
              at org.jgroups.JChannel.connect(JChannel.java:279)
              at org.jboss.as.clustering.jgroups.subsystem.ChannelBuilder.start(ChannelBuilder.java:125)
              ... 6 more
      
      

      It is obvious from the error message and from the startup command, that the IP address for "private" interface is not being set when starting node1, i.e. there should be also this parameter:

      -Djboss.bind.address.private=$IP
      

      In that case, both servers bind to 127.0.0.1 and try to use 55200 port. Second server then logs the error as expected.

      The question is: why this did not happen with previous DR builds?

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  pferraro Paul Ferraro
                  Reporter:
                  mvinkler Michal Vinkler
                  Tester:
                  Michal Vinkler
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: