Long time no see, I was trying a long running request with the new client and it seems that after 30 seconds it cuts the request, regardless of whether I specify a longer request timeout. Is there a different mechanism for configuration?
-- Cheers, Josiah.
WARNING: Unknown module: io.avaje.jex.test specified to --add-reads Nov 08, 2025 11:15:40 AM jdk.internal.net.http.Http3ClientImpl getConnectionFor INFO: HTTP3: getConnectionFor exchange https://localhost:8080 GET #1 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.Http3ClientImpl getConnectionFor INFO: HTTP3: Creating connection for Exchange https://localhost:8080 GET #1 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.HttpQuicConnection logAltSvcFor INFO: ALTSVC: No AltService found for localhost:8080 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.QuicClient chooseEndpoint INFO: QUIC: Adding new endpoint: QuicEndpoint(HttpClientImpl(1)-0) Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.QuicEndpoint lambda$create$1 INFO: QUIC: Initial receive buffer size is: 65536 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.QuicEndpoint lambda$create$1 INFO: QUIC: Initial send buffer size is: 65536 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.Http3Connection createAsync INFO: HTTP3: Http3Connection.createAsync: Got HttpQuicConnection for https://localhost:8080 GET #1 is: quic:1 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.QuicConnectionImpl startInitialTimer INFO: QUIC: QuicClientConnection(1): Arming quic initial timer for PT29.9996546S Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.QuicConnectionImpl sendFirstInitialPacket INFO: QUIC: QuicClientConnection(1): connectionId: 230ecedb5372809bf43d4c08a9e96186db369c, QuicEndpoint(HttpClientImpl(1)-0): QuicEndpoint(HttpClientImpl(1)-0) - /[0:0:0:0:0:0:0:0]:59552 Nov 08, 2025 11:15:40 AM jdk.internal.net.http.quic.IdleTimeoutManager checkUpdateIdleTimeout INFO: QUIC: QuicClientConnection(1) idle connection timeout updated to 30,000 milli seconds Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager$PacketTransmissionTask logNoDeadline INFO: QUIC: QuicClientConnection(1): INITIAL no deadline, task unscheduled Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager close INFO: QUIC: QuicClientConnection(1) closing packet space INITIAL Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.IdleTimeoutManager startIdleTerminationTimer INFO: QUIC: QuicClientConnection(1) started QUIC idle timeout management for connection, idle timeout event: QuicIdleTimeoutEvent-4 deadline: Deadline(2025-11-08T16:16:11.089526200Z) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.IdleTimeoutManager startStreamDataBlockedTimer INFO: QUIC: QuicClientConnection(1) started STREAM_DATA_BLOCKED timer for connection, event: StreamDataBlockedEvent-5 deadline: Deadline(2025-11-08T16:16:03.591024600Z) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3Connection <init> INFO: HTTP3: HTTP/3 connection created for QuicClientConnection(1) - local address: /[0:0:0:0:0:0:0:0]:59552 Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.QuicConnectionImpl pushDatagram INFO: QUIC: QuicClientConnection(1) OUT: ONERTT(pn:0, size=100, phase:-1, spin:-1, frames:[NewConnectionIDFrame(seqNumber=1, retirePriorTo=0, connIdLength=19), StreamFrame(stream=2, offset=0, length=1, fin=false), StreamFrame(stream=2, offset=1, length=27, fin=false)]) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.QuicConnectionImpl processDecrypted INFO: QUIC: QuicClientConnection(1) IN: ONERTT(pn:0, size=43, phase:0, spin:0, frames:[HandshakeDoneFrame, StreamFrame(stream=3, offset=0, length=1, fin=false)]) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager$PacketTransmissionTask logNoDeadline INFO: QUIC: QuicClientConnection(1): APPLICATION no deadline, task unscheduled Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager close INFO: QUIC: QuicClientConnection(1) closing packet space HANDSHAKE Nov 08, 2025 11:15:41 AM jdk.internal.net.http.AltServicesRegistry registerUnadvertised INFO: ALTSVC: Added unadvertised AltService: Optional[AltSvc: h3="localhost:8080"; origin="https://localhost:8080"; deadline=Deadline(2025-11-09T16:15:41.117233600Z); persist=true; advertised=false; sameAuthorityAsOrigin=true;] Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager$PacketTransmissionTask logNoDeadline INFO: QUIC: QuicClientConnection(1): HANDSHAKE no deadline, task unscheduled Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3ClientImpl connectionCompleted INFO: HTTP3: Checking waiters on completed connection quic:1 to https:localhost:8080 created for https://localhost:8080 GET #1 Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3ClientImpl connectionCompleted0 INFO: HTTP3: Connection creation completed for requests to https:localhost:8080: waiters[0](completed:0, retried:0, errors:0) - originally created for https://localhost:8080 GET #1 Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager$PacketTransmissionTask logNoDeadline INFO: QUIC: QuicClientConnection(1): APPLICATION new deadline computed, deadline in 8ms Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.QuicConnectionImpl processDecrypted INFO: QUIC: QuicClientConnection(1) IN: ONERTT(pn:2, size=110, phase:0, spin:0, frames:[NewConnectionIDFrame(seqNumber=1, retirePriorTo=0, connIdLength=8), CryptoFrame(offset=0, length=42)]) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3Connection createHttp3ExchangeImpl INFO: HTTP3: Creating HTTP/3 exchange for QuicClientConnection(1)/streamId=0 Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3ExchangeImpl start INFO: HTTP3: Starting HTTP/3 exchange for QuicClientConnection(1)/streamId=0 (https://localhost:8080 GET #1) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3ExchangeImpl sendHeaders INFO: REQUEST: https://localhost:8080 GET Nov 08, 2025 11:15:41 AM jdk.internal.net.http.Http3ExchangeImpl sendHeaders INFO: HEADERS: H3 HEADERS FRAME (stream=0) :authority: localhost:8080 :method: GET :path: / :scheme: https User-Agent: Java-http-client/26-ea Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.QuicConnectionImpl pushDatagram INFO: QUIC: QuicClientConnection(1) OUT: ONERTT(pn:4, size=75, phase:-1, spin:-1, frames:[StreamFrame(stream=0, offset=0, length=2, fin=false), StreamFrame(stream=0, offset=2, length=2, fin=false), StreamFrame(stream=0, offset=4, length=34, fin=true)]) Nov 08, 2025 11:15:41 AM jdk.internal.net.http.quic.PacketSpaceManager$PacketTransmissionTask logNoDeadline INFO: QUIC: QuicClientConnection(1): APPLICATION no deadline, task unscheduled Nov 08, 2025 11:16:11 AM jdk.internal.net.http.quic.IdleTimeoutManager idleTimedOut INFO: QUIC: QuicClientConnection(1) silently terminating connection due to idle timeout (30000 milli seconds): PacketSpace: INITIAL State: closed AckFrame: NextAckFrame[ackFrame=AckFrame(largestAcknowledged=0, ackDelay=0, ackRanges=[0..0]), deadline=Deadline(+1000000000-12-31T23:59:59.999999999Z), lastUpdated=Deadline(2025-11-08T16:15:41.062541500Z), sent=Deadline(2025-11-08T16:15:41.063069200Z)] Pending acks: () Pending retransmit: () PacketSpace: HANDSHAKE State: closed AckFrame: NextAckFrame[ackFrame=AckFrame(largestAcknowledged=2, ackDelay=0, ackRanges=[0..2]), deadline=Deadline(+1000000000-12-31T23:59:59.999999999Z), lastUpdated=Deadline(2025-11-08T16:15:41.088205900Z), sent=Deadline(2025-11-08T16:15:41.089417800Z)] Pending acks: () Pending retransmit: () PacketSpace: APPLICATION State: opened AckFrame: NextAckFrame[ackFrame=AckFrame(largestAcknowledged=4, ackDelay=0, ackRanges=[0..4]), deadline=Deadline(+1000000000-12-31T23:59:59.999999999Z), lastUpdated=Deadline(2025-11-08T16:15:41.178491500Z), sent=Deadline(2025-11-08T16:15:41.187927700Z)] Pending acks: () Pending retransmit: () Nov 08, 2025 11:16:11 AM jdk.internal.net.http.quic.ConnectionTerminatorImpl silentTerminate INFO: QUIC: QuicClientConnection(1) silently terminating connection due to: connection idle timed out (30000 milli seconds) Nov 08, 2025 11:16:11 AM jdk.internal.net.http.quic.ConnectionTerminatorImpl silentTerminate INFO: QUIC: QuicClientConnection(1) connection state: sending: {canSend:false, credit: 9999934, sendersReady: false, hasControlFrames: false}, cc: { backoff: 1, duration: PT0.152018S, current deadline: due since 30002ms, prospective deadline: not scheduled (Deadline.MAX)}, streams: [{id:0, available: 0, blocked: false},] Nov 08, 2025 11:16:11 AM jdk.internal.net.http.quic.PacketSpaceManager close INFO: QUIC: QuicClientConnection(1) closing packet space APPLICATION Nov 08, 2025 11:16:11 AM jdk.internal.net.http.Http3ExchangeImpl onPollException INFO: HTTP3: QuicClientConnection(1)/streamId=0 https://localhost:8080 GET #1 (requestSent=true, responseReceived=false, reader=RECV, writer=DATA_RECVD, statusCode=0, finalStream=false, receivedQuicBytes=0, sentQuicBytes=38): java.io.IOException: connection idle timed out (30000 milli seconds) Nov 08, 2025 11:16:11 AM jdk.internal.net.http.Http3ExchangeImpl close INFO: HTTP3: Closed HTTP/3 exchange for QuicClientConnection(1)/streamId=0 with error java.io.IOException: connection idle timed out (30000 milli seconds) Nov 08, 2025 11:16:11 AM jdk.internal.net.http.Http3Connection onExchangeClose INFO: HTTP3: HTTP/3 connection QuicClientConnection(1) left open: exchanged streamId=0 closed; finalStream=false, exchangeStreams=0, reservedStreamCount=0 Exception in thread "main" java.io.IOException: connection idle timed out (30000 milli seconds) at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:1018) at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133) at io.avaje.jex.http3.flupke/io.avaje.jex.http3.flupke.Timeout.main(Timeout.java:86) Caused by: java.io.IOException: connection idle timed out (30000 milli seconds) at java.net.http/jdk.internal.net.http.quic.TerminationCause.toReportedCause(TerminationCause.java:129) at java.net.http/jdk.internal.net.http.quic.TerminationCause.<init>(TerminationCause.java:56) at java.net.http/jdk.internal.net.http.quic.TerminationCause$SilentTermination.<init>(TerminationCause.java:203) at java.net.http/jdk.internal.net.http.quic.TerminationCause.forSilentTermination(TerminationCause.java:96) at java.net.http/jdk.internal.net.http.quic.IdleTimeoutManager.idleTimedOut(IdleTimeoutManager.java:349) at java.net.http/jdk.internal.net.http.quic.IdleTimeoutManager$IdleTimeoutEvent.terminateNow(IdleTimeoutManager.java:437) at java.net.http/jdk.internal.net.http.quic.IdleTimeoutManager$IdleTimeoutEvent.handle(IdleTimeoutManager.java:411) at java.net.http/jdk.internal.net.http.quic.QuicTimerQueue.processDue(QuicTimerQueue.java:298) 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:1090) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) at java.base/java.lang.Thread.run(Thread.java:1474)
Timeout.java
Description: Binary data
