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: