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