Details
-
Bug
-
Resolution: Fixed
-
P4
-
None
-
b26
-
Verified
Description
The ExecutorShutdown has been observed failing intermittently, if by misfortune the shutdown sequence causes a connection to get aborted while upgrading:
java.lang.AssertionError: 2: Unexpected exception: java.io.IOException: connection closed locally
at ExecutorShutdown.checkCause(ExecutorShutdown.java:146)
at ExecutorShutdown.lambda$testConcurrent$1(ExecutorShutdown.java:197)
at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:990)
at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:974)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.io.IOException: connection closed locally
at java.net.http/jdk.internal.net.http.SocketTube.signalClosed(SocketTube.java:159)
at java.net.http/jdk.internal.net.http.PlainHttpConnection.close(PlainHttpConnection.java:418)
at java.net.http/jdk.internal.net.http.AsyncSSLConnection.close(AsyncSSLConnection.java:111)
at java.net.http/jdk.internal.net.http.Exchange$ConnectionAborter.closeConnection(Exchange.java:188)
at java.net.http/jdk.internal.net.http.Exchange$ConnectionAborter.closeConnection(Exchange.java:172)
at java.net.http/jdk.internal.net.http.Exchange.cancel(Exchange.java:271)
at java.net.http/jdk.internal.net.http.MultiExchange.cancel(MultiExchange.java:265)
at java.net.http/jdk.internal.net.http.HttpClientImpl$PendingRequest.abort(HttpClientImpl.java:260)
at java.net.http/jdk.internal.net.http.HttpClientImpl.abortPendingRequests(HttpClientImpl.java:318)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.abort(HttpClientImpl.java:1211)
at java.net.http/jdk.internal.net.http.HttpClientImpl.onSubmitFailure(HttpClientImpl.java:522)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.ensureExecutedAsync(HttpClientImpl.java:185)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:175)
java.lang.AssertionError: 2: Unexpected exception: java.io.IOException: connection closed locally
at ExecutorShutdown.checkCause(ExecutorShutdown.java:146)
at ExecutorShutdown.lambda$testConcurrent$1(ExecutorShutdown.java:197)
at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:990)
at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:974)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.io.IOException: connection closed locally
at java.net.http/jdk.internal.net.http.SocketTube.signalClosed(SocketTube.java:159)
at java.net.http/jdk.internal.net.http.PlainHttpConnection.close(PlainHttpConnection.java:418)
at java.net.http/jdk.internal.net.http.AsyncSSLConnection.close(AsyncSSLConnection.java:111)
at java.net.http/jdk.internal.net.http.Exchange$ConnectionAborter.closeConnection(Exchange.java:188)
at java.net.http/jdk.internal.net.http.Exchange$ConnectionAborter.closeConnection(Exchange.java:172)
at java.net.http/jdk.internal.net.http.Exchange.cancel(Exchange.java:271)
at java.net.http/jdk.internal.net.http.MultiExchange.cancel(MultiExchange.java:265)
at java.net.http/jdk.internal.net.http.HttpClientImpl$PendingRequest.abort(HttpClientImpl.java:260)
at java.net.http/jdk.internal.net.http.HttpClientImpl.abortPendingRequests(HttpClientImpl.java:318)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.abort(HttpClientImpl.java:1211)
at java.net.http/jdk.internal.net.http.HttpClientImpl.onSubmitFailure(HttpClientImpl.java:522)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.ensureExecutedAsync(HttpClientImpl.java:185)
at java.net.http/jdk.internal.net.http.HttpClientImpl$DelegatingExecutor.execute(HttpClientImpl.java:175)