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

Native connector shoudl support the java.net.preferIPv4Stack system property

    Details

      Description

      There is another example of incorrect address binding in IPv6 environment.

      Steps how to reproduce:
      1. Download, unpack DR12 build somewhere
      2. Remove -Djava.net.preferIPv4Stack=true, or change it to -Djava.net.preferIPv4Stack=false parameter inside JAVA_OPT in file bin/standalone.conf
      3. Set some usefull IPv6 address to network interface (in my case network interface is p2p1, so you can use command like "ip addr add 1:0:0:1::10 dev p2p1")
      3a. Don't forget to configure this IPv6 address as hostname for box (let say, hostname is fedora15-vrt1, so at least /etc/hosts should contain "1:0:0:1::10 fedora15-vrt1")
      4. Verify if you really have configured wanted eth. interface only aka:

      [root@fedora15-vrt1 Documents]# ifconfig 
      p2p1      Link encap:Ethernet  HWaddr 00:00:00:00:00:01  
                inet6 addr: 1:0:0:1::10/128 Scope:Global
                inet6 addr: fe80::200:ff:fe00:1/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000 
                RX bytes:0 (0.0 b)  TX bytes:766 (766.0 b)
       
      [root@fedora15-vrt1 Documents]# 
      

      5. Start EAP6 as usual bin/standalone.sh and wait until it says somethink similas as "[org.jboss.as] (Controller Boot Thread) JBoss EAP 6.0.0.Alpha2 (AS 7.1.0.CR1-redhat-1) started in 16179ms - Started 158 of 228 services (68 services are passive or on-demand)"
      6. Check addresses binding via "netstat -lnp|grep java"

      The result it this scenario should be something like mine:

      [root@fedora15-vrt1 jboss-as]# netstat -lnp|grep java
      tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:5445       :::*                        LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:9990       :::*                        LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:3528       :::*                        LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:9999       :::*                        LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:5455       :::*                        LISTEN      4765/java           
      tcp        0      0 ::ffff:127.0.0.1:4447       :::*                        LISTEN      4765/java           
      [root@fedora15-vrt1 jboss-as]# 
      

      As you may see - poor binding is done to 127.0.0.1 IPv4 address, but anyway others are bound to IPv6 address ::ffff:127.0.0.1 although every log message refers to IPv4 address 127.0.0.1.

      The worst is that in case when you disable loopback interface at all (ip link set dev lo down) before starting EAP, the result is the same although IP address 127.0.0.1, nor ::ffff:127.0.0.1 doesn't exist (isn't active) in Linux system.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jfclere Jean-Frederic Clere
                  Reporter:
                  pjanouse Pavel Janousek
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  6 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: