RFR: 8247614: java/nio/channels/DatagramChannel/Connect.java timed out

Conor Cleary ccleary at openjdk.java.net
Thu Oct 15 10:42:20 UTC 2020


Occasional failures of this test have been observed. However it was unclear as to the precise nature of the failure due
to minimal logging and multiple features of DatagramChannel being tested in one run. Another issue is that on failure
of either a Writer or Reader thread, the thread that did not fail waits until the test itself times out.

To attempt to mitigate these factors, the test was modified in the following manner:

- Additional logging was added to help locate future points of failure in the test.
- On L95, guards were added to make sure the test for a DatagramChannel throwing an AlreadyConnectedException does not
  end up using the same port as used for the connection on L86-87
- `wait(CompletableFuture<?>... futures)` was implemented to throw a CompletionException if either the Reader or Writer
  fails, rather than waiting for the test to time out.

Seeking review in particular on implementation of the `wait(CompletableFuture<?>... futures)` function. As it stands
currently the wait function waits for one of the given futures completes exceptionally. If that doesnt happen, it will
wait for _all_ futures to complete successfully.

-------------

Commit messages:
 - 8247614: java/nio/channels/DatagramChannel/Connect.java timed out

Changes: https://git.openjdk.java.net/jdk/pull/679/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=679&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8247614
  Stats: 78 lines in 1 file changed: 26 ins; 30 del; 22 mod
  Patch: https://git.openjdk.java.net/jdk/pull/679.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/679/head:pull/679

PR: https://git.openjdk.java.net/jdk/pull/679


More information about the nio-dev mailing list