RFR: 8278961: Enable debug logging in java/net/DatagramSocket/SendDatagramToBadAddress.java
Daniel Jeliński
duke at openjdk.java.net
Fri Dec 17 16:39:23 UTC 2021
On Fri, 17 Dec 2021 14:52:53 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review for this test only change which proposes to enable debug logs from the test that failed intermittently? This change addresses https://bugs.openjdk.java.net/browse/JDK-8278961.
>
> The change passes the (test specific) `-d` option to enable logs from that test by default. While I was at it, I even added a few more debug logs hoping it might provide some hints if/when it fails next.
>
> For reference, a (successful) run of this test will now print something like:
>
>
> ----------System.out:(18/930)----------
> running on OS that supports ICMP port unreachable
> Testing with class java.net.DatagramSocket
> tests will be run against destination address localhost/127.0.0.1 port 52682
> Checking send to connected address ...
> socket is locally bound to address /127.0.0.1 port 52681
> received data from address /127.0.0.1 port 52681
> received data from address /127.0.0.1 port 52681
> received data from address /127.0.0.1 port 52681
> received data from address /127.0.0.1 port 52681
> received data from address /127.0.0.1 port 52681
> Checking send to non-connected address ...
> received data from address /127.0.0.1 port 52681
> Checking send to invalid address ...
> Got expected exception: java.net.PortUnreachableException
> Got expected exception: java.net.PortUnreachableException
> Got expected exception: java.net.PortUnreachableException
> Got expected exception: java.net.PortUnreachableException
> Got expected exception: java.net.PortUnreachableException
Does the `OSsupportsFeature` method still make sense? It mentions Windows 2000; I'm pretty sure every Windows version supports this today.
Also, I took a peek at JDK-8278858. The logs mention
> elapsed time (seconds): 20.069
which is consistent with 5 (tries) *4seconds (timeout), which suggests that either the host firewalls ICMP "destination unreachable" packets, or our `serversock.close ();` call is somehow broken on that machine.
test/jdk/java/net/DatagramSocket/SendDatagramToBadAddress.java line 178:
> 176: p = new DatagramPacket(buf, buf.length, addr, port);
> 177: sock.receive (p);
> 178: print("(unexpectedly) received data from address " + p.getAddress()
We should immediately fail the test here
test/jdk/java/net/DatagramSocket/SendDatagramToBadAddress.java line 182:
> 180: } catch (InterruptedIOException ex) {
> 181: print ("socket timeout");
> 182: } catch (Exception ex) {
Can we catch `PortUnreachableException` here instead?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6883
More information about the net-dev
mailing list