Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8309200

java/net/httpclient/ExecutorShutdown fails intermittently, if connection closed during upgrade

    XMLWordPrintable

Details

    • 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)

      Attachments

        Issue Links

          Activity

            People

              dfuchs Daniel Fuchs
              dfuchs Daniel Fuchs
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: