RFR: JDK-8280498: [aix]: jdk/java/net/Inet4Address/PingThis.java fails
Michael Felt
duke at openjdk.java.net
Sat Feb 26 16:34:46 UTC 2022
On Fri, 28 Jan 2022 15:15:06 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
> From the description and evaluation of [JDK-7163874](https://bugs.openjdk.java.net/browse/JDK-7163874) it seems that skipping this test on AIX would be reasonable.
>
> Some operating systems seem to accept 0.0.0.0 as input - and reply with 127.0.0.1. The changes made for JDK-7163874 simply makes sure that such a reply is not rejected as invalid on the ground that the received address is not the same as the input address. If 0.0.0.0 is not a valid input for the underlying operating system, then the test has no object and should probably be skipped.
Being a bit more specific - especially re: valid address:
- On AIX ping ::0 is not valid
aixtools at x064:[aixtools]ping ::0
ping: bind: The socket name is not available on this system.
- On AIX ping 0.0.0.0 is not invalid, but how it responds
ETH: ====( 98 bytes transmitted on interface en0 )==== 16:13:13.970131171
ETH: [ 00:21:5e:a3:c7:44 -> 44:4e:6d:fa:4b:fe ] type 800 (IP)
IP: < SRC = 192.168.129.64 > (x064)
IP: < DST = 0.0.0.0 >
IP: ip_v=4, ip_hl=20, ip_tos=0, ip_len=84, ip_id=63721, ip_off=0
IP: ip_ttl=255, ip_sum=80d6, ip_p = 1 (ICMP)
ICMP: icmp_type=8 (ECHO_REQUEST) icmp_id=216 icmp_seq=516
- In special cases - when there are devices external to the (virtual) machine, that respond to 0.0.0.0 you get the address of the replying device:
root at p8-java1-adopt07:[/root]ping 0.0.0.0
PING 0.0.0.0 (0.0.0.0): 56 data bytes
64 bytes from 140.211.9.1: icmp_seq=0 ttl=255 time=11 ms
64 bytes from 140.211.9.1: icmp_seq=1 ttl=255 time=12 ms
64 bytes from 140.211.9.1: icmp_seq=2 ttl=255 time=0 ms
- At trace level:
ETH: ====( 98 bytes transmitted on interface en1 )==== 16:19:39.475020041
ETH: [ 12:31:9e:0f:73:03 -> 58:bc:27:ae:b0:50 ] type 800 (IP)
IP: < SRC = 140.211.9.168 > (p8-java1-adopt07)
IP: < DST = 0.0.0.0 >
IP: ip_v=4, ip_hl=20, ip_tos=0, ip_len=84, ip_id=23686, ip_off=0
IP: ip_ttl=255, ip_sum=c8a7, ip_p = 1 (ICMP)
ICMP: icmp_type=8 (ECHO_REQUEST) icmp_id=238 icmp_seq=18
ETH: ====( 98 bytes received on interface en1 )==== 16:19:39.475356474
ETH: [ 58:bc:27:ae:b0:50 -> 12:31:9e:0f:73:03 ] type 800 (IP)
IP: < SRC = 140.211.9.1 > (corv-car1-gw.nero.net)
IP: < DST = 140.211.9.168 > (p8-java1-adopt07)
IP: ip_v=4, ip_hl=20, ip_tos=0, ip_len=84, ip_id=23686, ip_off=0
IP: ip_ttl=255, ip_sum=32d3, ip_p = 1 (ICMP)
ICMP: icmp_type=0 (ECHO_REPLY) icmp_id=238 icmp_seq=18
In conclusion: the `solution` is most likely to skip the test, just as it is skipped for Windows.
a) address `::0` is not valid
b) a response to IPv4: 0.0.0.0 depends on an external device responding to `0.0.0.0`
I'll make the basic changes - but I am sure to need help with text (the right bug number, or whatever) that needs to go into the code.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7013
More information about the net-dev
mailing list