Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2102

bind_interface="eth0" and bind_addr="LINK_LOCAL" config are conflict

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • 3.6.14
    • 3.6.1
    • None
    • Hide

      the issue happens always in dual stack environment with such jgroup config

      Show
      the issue happens always in dual stack environment with such jgroup config

      Error happens while

      Caused by: org.infinispan.commons.CacheConfigurationException: ISPN000085: Error while trying to create a channel using the specified configuration file: /opt/oss/NSN-icf_notification_dispatcher/conf/jgroups-udp.xml

      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:406)

      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:307)

      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannelAndRPCDispatcher(JGroupsTransport.java:351)

      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:188)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)

      at java.lang.reflect.Method.invoke(Method.java:620)

      at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)

      at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)

      at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)

      at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)

      at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)

      at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:226)

      ... 26 more

      Caused by: java.lang.Exception: Property assignment of bind_interface in UDP with original property value eth0 and converted to null could not be assigned

      at org.jgroups.stack.Configurator.resolveAndAssignField(Configurator.java:1153)

      at org.jgroups.stack.Configurator.createLayer(Configurator.java:444)

      at org.jgroups.stack.Configurator.createProtocols(Configurator.java:398)

      at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:90)

      at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:57)

      at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:477)

      at org.jgroups.JChannel.init(JChannel.java:854)

      at org.jgroups.JChannel.<init>(JChannel.java:159)

      at org.jgroups.JChannel.<init>(JChannel.java:129)

      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:404)

      ... 39 more

      Caused by: java.lang.Exception: Conversion of bind_interface in UDP with original property value eth0 failed

      at org.jgroups.conf.PropertyHelper.getConvertedValue(PropertyHelper.java:84)

      at org.jgroups.stack.Configurator.resolveAndAssignField(Configurator.java:1147)

      ... 48 more

      Caused by: java.lang.mail@example.comIllegalArgumentException: network interface eth0 does not contain address fe80:0:0:0:250:56ff:feab:d612%3

      at org.jgroups.util.Util.validateBindAddressFromInterface(Util.java:3132)

      bind_interface="eth0" and bind_addr="LINK_LOCAL" config are config at the same time
      but it couldn't get the eth0 link local address but return eth1 link local address

      This code return the first address that match, it should return with eth0
      jgroups-3.6.1.Final-sources\org\jgroups\util\Util.java

      public static InetAddress getAddress(AddressScope scope)     //                     ----> scope is LINK_LOCAL
          throws SocketException
        {
          InetAddress address = null;
      
          Enumeration intfs = NetworkInterface.getNetworkInterfaces();
          while (intfs.hasMoreElements()) {
            NetworkInterface intf = (NetworkInterface)intfs.nextElement();
            try {
              if (intf.isUp()) {
                address = getAddress(intf, scope);    //  -------> It will return the first LINK_LOCAL address from NICs list
                if (address != null)
                  return address;
              }
            }
            catch (SocketException e) {
            }
          }
          return null;
        }
      

              rhn-engineering-bban Bela Ban
              kathzhan Zhang Lijia (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: