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

AssertionError in ResponseSubscribers$HttpResponseInputStream::onSubscribe

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 21
    • 21
    • core-libs
    • b11
    • aarch64
    • os_x
    • Verified

      The following test failed in the JDK21 CI:

      java/net/httpclient/AsyncExecutorShutdown.java

      Here's a snippet from the log file:

      ---- starting (http://localhost:63763/http2/exec/retry) ----
      Iteration 0 request: http://localhost:63763/http2/exec/retry/concurrent/iteration-0
      0: sleeping 2 ms
      Iteration 1 request: http://localhost:63763/http2/exec/retry/concurrent/iteration-1
      1: sleeping 3 ms
      Iteration 2 request: http://localhost:63763/http2/exec/retry/concurrent/iteration-2
      2: sleeping 4 ms
      Http2TestContext::handle Http2TestExchangeImpl: Http2TestExchangeImpl@1e1c07a9
      Http2TestContext::handle Http2TestExchangeImpl: Http2TestExchangeImpl@779c9ed
      ServerRequestHandler for: http://localhost:63763/http2/exec/retry/concurrent/iteration-0
      ServerRequestHandler for: http://localhost:63763/http2/exec/retry/concurrent/iteration-1
      2: shutting down executor now
      0: Got expected exception: java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      0: checking java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      0: Got expected RejectedExecutionException in cause: java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      1: Got response: (GET http://localhost:63763/http2/exec/retry/concurrent/iteration-1) 200
      1: Got expected exception: java.io.UncheckedIOException: java.io.IOException: closed
      1: Got expected exception: java.io.UncheckedIOException: java.io.IOException: closed
      1: checking java.io.IOException: closed
      2: Got expected exception: java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      1: checking java.lang.AssertionError
      2: checking java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      2: Got expected RejectedExecutionException in cause: java.util.concurrent.RejectedExecutionException: Task jdk.internal.net.http.SocketTube$InternalWriteSubscriber$$Lambda$268/0x0000000801139d98@21cf1474 rejected from java.util.concurrent.ThreadPoolExecutor@48624fcc[Shutting down, pool size = 3, active threads = 3, queued tasks = 0, completed tasks = 17]
      test AsyncExecutorShutdown.testConcurrent("http://localhost:63763/http2/exec/retry"): failure
      java.util.concurrent.ExecutionException: java.lang.AssertionError: 1: Unexpected exception: java.io.IOException: closed
      at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
      at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
      at AsyncExecutorShutdown.testConcurrent(AsyncExecutorShutdown.java:226)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
      at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599)
      at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)
      at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
      at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822)
      at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147)
      at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
      at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
      at org.testng.TestRunner.privateRun(TestRunner.java:764)
      at org.testng.TestRunner.run(TestRunner.java:585)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
      at org.testng.SuiteRunner.run(SuiteRunner.java:286)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
      at org.testng.TestNG.runSuites(TestNG.java:1069)
      at org.testng.TestNG.run(TestNG.java:1037)
      at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:93)
      at com.sun.javatest.regtest.agent.TestNGRunner.main(TestNGRunner.java:53)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1623)
      Caused by: java.lang.AssertionError: 1: Unexpected exception: java.io.IOException: closed
      at AsyncExecutorShutdown.checkCause(AsyncExecutorShutdown.java:160)
      at AsyncExecutorShutdown.lambda$testConcurrent$2(AsyncExecutorShutdown.java:221)
      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$UniApply.tryFire(CompletableFuture.java:653)
      at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      ... 1 more
      Caused by: java.io.IOException: closed
      at java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.current(ResponseSubscribers.java:448)
      at java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.read(ResponseSubscribers.java:508)
      at java.base/java.io.InputStream.readNBytes(InputStream.java:409)
      at java.base/java.io.InputStream.readAllBytes(InputStream.java:346)
      at AsyncExecutorShutdown.readBody(AsyncExecutorShutdown.java:134)
      at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
      ... 7 more
      Caused by: java.lang.AssertionError
      at java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.onSubscribe(ResponseSubscribers.java:560)
      at java.net.http/jdk.internal.net.http.common.HttpBodySubscriberWrapper.onSubscribe(HttpBodySubscriberWrapper.java:200)
      at java.net.http/jdk.internal.net.http.Stream.schedule(Stream.java:180)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:205)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:230)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:303)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:256)
      at java.net.http/jdk.internal.net.http.Stream.receiveData(Stream.java:423)
      at java.net.http/jdk.internal.net.http.Stream.readBodyAsync(Stream.java:328)
      at java.net.http/jdk.internal.net.http.Exchange.readBodyAsync(Exchange.java:211)
      at java.net.http/jdk.internal.net.http.MultiExchange.lambda$responseAsync0$4(MultiExchange.java:354)
      at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
      at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2179)
      at java.net.http/jdk.internal.net.http.Stream.completeResponse(Stream.java:1148)
      at java.net.http/jdk.internal.net.http.Stream.handleResponse(Stream.java:530)
      at java.net.http/jdk.internal.net.http.Stream.incoming(Stream.java:469)
      at java.net.http/jdk.internal.net.http.Http2Connection.processFrame(Http2Connection.java:871)
      at java.net.http/jdk.internal.net.http.frame.FramesDecoder.decode(FramesDecoder.java:155)
      at java.net.http/jdk.internal.net.http.Http2Connection$FramesController.processReceivedData(Http2Connection.java:265)
      at java.net.http/jdk.internal.net.http.Http2Connection.asyncReceive(Http2Connection.java:714)
      at java.net.http/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.processQueue(Http2Connection.java:1440)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:205)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:149)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:230)
      ... 3 more

            dfuchs Daniel Fuchs
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: