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

java/net/httpclient/HttpsTunnelAuthTest.java fails with java.io.IOException: HTTP/1.1 header parser received no bytes

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P4
    • 24
    • None
    • core-libs
    • b14
    • x86_64
    • linux

    Description

      intermittent failure OL9 SBR JDK23 b33

      multiple exception observed in logs due to connection reset

      extract

      Jul 27, 2024 6:51:30 PM jdk.internal.net.http.Http1AsyncReceiver onReadError
      INFO: ERROR: HTTP/1 read subscriber recorded error: http://localhost:39017/foo/http1 POST - jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      Jul 27, 2024 6:51:30 PM jdk.internal.net.http.Http1AsyncReceiver onReadError
      INFO: ERROR: HTTP/1 propagating recorded error: http://localhost:39017/foo/http1 POST - jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      DEBUG: [HttpClient-1-SelectorManager] [187ms] SocketTube(1) Stopping read scheduler
      DEBUG: [HttpClient-1-SelectorManager] [187ms] SocketTube(1) leaving read() loop with error: Reading: [ops=None, demand=0, stopped=true], Writing: [ops=None, demand=1]
      DEBUG: [HttpClient-1-SelectorManager] [187ms] SocketTube(1) Read scheduler stopped
      DEBUG: [HttpClient-1-Worker-2] [187ms] Http1AsyncReceiver(SocketTube(1)) downstream subscription demand is 1
      DEBUG: [HttpClient-1-Worker-2] [187ms] Http1AsyncReceiver(SocketTube(1)) checkRequestMore: canRequestMore=false, hasDemand=true
      DEBUG: [HttpClient-1-Worker-2] [187ms] Http1AsyncReceiver(SocketTube(1)) Http1TubeSubscriber: no need to request more
      DEBUG: [HttpClient-1-Worker-2] [191ms] Http1AsyncReceiver(SocketTube(1)) flushing jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      delegate: jdk.internal.net.http.Http1Response$HeadersReader@31138802 queue.isEmpty: true
      Jul 27, 2024 6:51:30 PM jdk.internal.net.http.Http1Response onReadError
      INFO: ERROR: jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      at java.net.http/jdk.internal.net.http.common.Utils.wrapWithExtraDetail(Utils.java:441)
      at java.net.http/jdk.internal.net.http.Http1Response$HeadersReader.onReadError(Http1Response.java:590)
      at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.checkForErrors(Http1AsyncReceiver.java:302)
      at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.flush(Http1AsyncReceiver.java:268)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
      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:207)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      at java.base/java.lang.Thread.run(Thread.java:1575)
      Caused by: java.io.IOException: HTTP/1.1 header parser received no bytes
      at java.net.http/jdk.internal.net.http.common.Utils.wrapWithExtraDetail(Utils.java:440)
      ... 9 more
      Caused by: java.net.SocketException: Connection reset
      at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:403)
      at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:435)
      at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:493)
      at java.net.http/jdk.internal.net.http.SocketTube.readAvailable(SocketTube.java:1178)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.read(SocketTube.java:841)
      at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowTask.run(SocketTube.java:181)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.signalReadable(SocketTube.java:782)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent.signalEvent(SocketTube.java:965)
      at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowEvent.handle(SocketTube.java:253)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.handleEvent(HttpClientImpl.java:1476)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.lambda$run$3(HttpClientImpl.java:1421)
      at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1421)

      DEBUG: [HttpClient-1-Worker-2] [197ms] Http1Response(id=1, PlainProxyConnection(SocketTube(1))) onReadError: cf is not yet completed
      DEBUG: [HttpClient-1-Worker-2] [197ms] Http1Exchange getResponseAsync completed java.util.concurrent.CompletionException: jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      DEBUG: [HttpClient-1-Worker-2] [208ms] HttpClientImpl(1) ClientImpl (async) elapsed 148 millis for POST to http://localhost:39017/foo/http1
      DEBUG: [HttpClient-1-Worker-2] [209ms] Http1Response(id=1, PlainProxyConnection(SocketTube(1))) closing connection: cause is jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished
      DEBUG: [HttpClient-1-Worker-2] [212ms] PlainProxyConnection(SocketTube(1)) Closing channel: channel registered with selector, key.interestOps=None, sa.interestOps=None
      DEBUG: [HttpClient-1-Worker-2] [212ms] SocketTube(1) signal read error: java.io.IOException: connection closed locally
      DEBUG: [HttpClient-1-Worker-2] [213ms] Http1Exchange asyncReceiver finished (failed=jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished)
      DEBUG: [HttpClient-1-Worker-2] [213ms] Http1Exchange asyncReceiver finished (failed=jdk.internal.net.http.common.ConnectionExpiredException: subscription is finished)
      TestServer(1): stopping 0 connections
      java.io.IOException: HTTP/1.1 header parser received no bytes
      at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:969)
      at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133)
      at HttpsTunnelAuthTest.test(HttpsTunnelAuthTest.java:257)
      at HttpsTunnelAuthTest.main(HttpsTunnelAuthTest.java:182)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
      at java.base/java.lang.Thread.run(Thread.java:1575)
      Caused by: java.io.IOException: HTTP/1.1 header parser received no bytes
      at java.net.http/jdk.internal.net.http.common.Utils.wrapWithExtraDetail(Utils.java:440)
      at java.net.http/jdk.internal.net.http.Http1Response$HeadersReader.onReadError(Http1Response.java:590)
      at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.checkForErrors(Http1AsyncReceiver.java:302)
      at java.net.http/jdk.internal.net.http.Http1AsyncReceiver.flush(Http1AsyncReceiver.java:268)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$LockingRestartableTask.run(SequentialScheduler.java:182)
      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:207)
      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.net.SocketException: Connection reset
      at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:403)
      at java.base/sun.nio.ch.SocketChannelImpl.implRead(SocketChannelImpl.java:435)
      at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:493)
      at java.net.http/jdk.internal.net.http.SocketTube.readAvailable(SocketTube.java:1178)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.read(SocketTube.java:841)
      at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowTask.run(SocketTube.java:181)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:207)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:280)
      at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:233)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.signalReadable(SocketTube.java:782)
      at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent.signalEvent(SocketTube.java:965)
      at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowEvent.handle(SocketTube.java:253)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.handleEvent(HttpClientImpl.java:1476)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.lambda$run$3(HttpClientImpl.java:1421)
      at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
      at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1421)

      TestServer(1): finished
      JavaTest Message: Test threw exception: java.io.IOException: HTTP/1.1 header parser received no bytes
      JavaTest Message: shutting down test

      STATUS:Failed.`main' threw exception: java.io.IOException: HTTP/1.1 header parser received no bytes

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: