mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
8372951: The property jdk.httpclient.quic.maxBidiStreams should be renamed to jdk.internal
8365794: StreamLimitTest vs H3StreamLimitReachedTest: consider renaming or merging Reviewed-by: jpai
This commit is contained in:
parent
6d5bf9c801
commit
af8977e406
@ -174,17 +174,29 @@ public class QuicConnectionImpl extends QuicConnection implements QuicPacketRece
|
||||
public static final int SMALLEST_MAXIMUM_DATAGRAM_SIZE =
|
||||
QuicClient.SMALLEST_MAXIMUM_DATAGRAM_SIZE;
|
||||
|
||||
// The default value for the Quic maxInitialTimeout, in seconds. Will be clamped to [1, Integer.MAX_vALUE]
|
||||
public static final int DEFAULT_MAX_INITIAL_TIMEOUT = Math.clamp(
|
||||
Utils.getIntegerProperty("jdk.httpclient.quic.maxInitialTimeout", 30),
|
||||
1, Integer.MAX_VALUE);
|
||||
// The default value for the initial_max_data transport parameter that a QuicConnectionImpl
|
||||
// will send to its peer, if no value is provided by the higher level protocol.
|
||||
public static final long DEFAULT_INITIAL_MAX_DATA = Math.clamp(
|
||||
Utils.getLongProperty("jdk.httpclient.quic.maxInitialData", 15 << 20),
|
||||
0, 1L << 60);
|
||||
// The default value for the initial_max_stream_data_bidi_local, initial_max_stream_data_bidi_remote,
|
||||
// and initial_max_stream_data_uni transport parameters that a QuicConnectionImpl
|
||||
// will send to its peer, if no value is provided by the higher level protocol.
|
||||
public static final long DEFAULT_INITIAL_STREAM_MAX_DATA = Math.clamp(
|
||||
Utils.getIntegerProperty("jdk.httpclient.quic.maxStreamInitialData", 6 << 20),
|
||||
0, 1L << 60);
|
||||
// The default value for the initial_max_streams_bidi transport parameter that a QuicConnectionImpl
|
||||
// will send to its peer, if no value is provided by the higher level protocol.
|
||||
// The Http3ClientImpl typically provides a value of 0, so this property has no effect
|
||||
// on QuicConnectionImpl instances created on behalf of the HTTP/3 client
|
||||
public static final int DEFAULT_MAX_BIDI_STREAMS =
|
||||
Utils.getIntegerProperty("jdk.httpclient.quic.maxBidiStreams", 100);
|
||||
Utils.getIntegerProperty("jdk.internal.httpclient.quic.maxBidiStreams", 100);
|
||||
// The default value for the initial_max_streams_uni transport parameter that a QuicConnectionImpl
|
||||
// will send to its peer, if no value is provided by the higher level protocol.
|
||||
public static final int DEFAULT_MAX_UNI_STREAMS =
|
||||
Utils.getIntegerProperty("jdk.httpclient.quic.maxUniStreams", 100);
|
||||
public static final boolean USE_DIRECT_BUFFER_POOL = Utils.getBooleanProperty(
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
* -Djdk.internal.httpclient.quic.poller.usePlatformThreads=false
|
||||
* -Djdk.httpclient.quic.maxEndpoints=-1
|
||||
* -Djdk.httpclient.http3.maxStreamLimitTimeout=0
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.httpclient.retryOnStreamlimit=50
|
||||
* -Djdk.httpclient.HttpClient.log=errors,http3,quic:retransmit
|
||||
* -Dsimpleget.requests=100
|
||||
@ -61,7 +61,7 @@
|
||||
* -XX:+UnlockExperimentalVMOptions -XX:-VMContinuations
|
||||
* -Djdk.httpclient.quic.maxEndpoints=-1
|
||||
* -Djdk.httpclient.http3.maxStreamLimitTimeout=0
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.httpclient.retryOnStreamlimit=50
|
||||
* -Djdk.httpclient.HttpClient.log=errors,http3,quic:retransmit
|
||||
* -Dsimpleget.requests=100
|
||||
@ -85,7 +85,7 @@
|
||||
* -Djdk.internal.httpclient.quic.useNioSelector=true
|
||||
* -Djdk.httpclient.http3.maxStreamLimitTimeout=0
|
||||
* -Djdk.httpclient.quic.maxEndpoints=1
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.httpclient.retryOnStreamlimit=50
|
||||
* -Djdk.httpclient.HttpClient.log=errors,http3,quic:hs:retransmit
|
||||
* -Dsimpleget.requests=100
|
||||
@ -109,7 +109,7 @@
|
||||
* -Djdk.httpclient.quic.maxPtoBackoff=9
|
||||
* -Djdk.httpclient.http3.maxStreamLimitTimeout=0
|
||||
* -Djdk.httpclient.quic.maxEndpoints=1
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=2
|
||||
* -Djdk.httpclient.retryOnStreamlimit=50
|
||||
* -Djdk.httpclient.HttpClient.log=errors,http3,quic:hs:retransmit
|
||||
* -Dsimpleget.requests=100
|
||||
@ -239,7 +239,7 @@ public class H3MultipleConnectionsToSameHost implements HttpServerAdapters {
|
||||
long done = System.nanoTime();
|
||||
System.out.println("Initialization and warmup took "+ TimeUnit.NANOSECONDS.toMillis(done-prestart)+" millis");
|
||||
// Thread.sleep(30000);
|
||||
int maxBidiStreams = Utils.getIntegerNetProperty("jdk.httpclient.quic.maxBidiStreams", 100);
|
||||
int maxBidiStreams = Utils.getIntegerNetProperty("jdk.internal.httpclient.quic.maxBidiStreams", 100);
|
||||
long timeout = MAX_STREAM_LIMIT_WAIT_TIMEOUT;
|
||||
|
||||
Set<String> connections = new ConcurrentSkipListSet<>();
|
||||
|
||||
@ -23,6 +23,24 @@
|
||||
|
||||
/*
|
||||
* @test id=with-default-wait
|
||||
* @summary this test verifies that the correct connection is
|
||||
* used when a request is retried on a new connection
|
||||
* due to stream limit reached.
|
||||
* The maxBidiStreams limit is artificially set to 1.
|
||||
* This configuration uses the default wait for a stream
|
||||
* to become available before retrying.
|
||||
* Different configurations are tested if possible,
|
||||
* with both HTTP/3 only and HTTP/2 HTTP/3 with altsvc.
|
||||
* In one case the HTTP/3 only server will be listening
|
||||
* on the same port as the HTTP/2 server, with the
|
||||
* HTTP/2 server advertising an AltService on a different
|
||||
* port. In another case the AltService will be on the
|
||||
* same port as the HTTP/2 server and the HTTP/3 server
|
||||
* will be on a different port. In all case, the test
|
||||
* verifies that the right connection is picked up
|
||||
* for the retry.
|
||||
* @bug 8372951
|
||||
* @comment this test also tests bug 8372951
|
||||
* @library /test/lib /test/jdk/java/net/httpclient/lib
|
||||
* @build jdk.httpclient.test.lib.http2.Http2TestServer
|
||||
* jdk.test.lib.Asserts
|
||||
@ -30,12 +48,30 @@
|
||||
* jdk.test.lib.net.SimpleSSLContext
|
||||
* @run testng/othervm -Djdk.httpclient.HttpClient.log=ssl,requests,responses,errors,http3,quic:control
|
||||
* -Djdk.internal.httpclient.debug=false
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=1
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=1
|
||||
* H3StreamLimitReachedTest
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test id=with-no-wait
|
||||
* @summary this test verifies that the correct connection is
|
||||
* used when a request is retried on a new connection
|
||||
* due to stream limit reached.
|
||||
* The maxBidiStreams limit is artificially set to 1.
|
||||
* This configuration retries immediately on a new
|
||||
* connection when no stream is available.
|
||||
* Different configurations are tested if possible,
|
||||
* with both HTTP/3 only and HTTP/2 HTTP/3 with altsvc.
|
||||
* In one case the HTTP/3 only server will be listening
|
||||
* on the same port as the HTTP/2 server, with the
|
||||
* HTTP/2 server advertising an AltService on a different
|
||||
* port. In another case the AltService will be on the
|
||||
* same port as the HTTP/2 server and the HTTP/3 server
|
||||
* will be on a different port. In all case, the test
|
||||
* verifies that the right connection is picked up
|
||||
* for the retry.
|
||||
* @bug 8372951
|
||||
* @comment this test also tests bug 8372951
|
||||
* @library /test/lib /test/jdk/java/net/httpclient/lib
|
||||
* @build jdk.httpclient.test.lib.http2.Http2TestServer
|
||||
* jdk.test.lib.Asserts
|
||||
@ -43,7 +79,7 @@
|
||||
* jdk.test.lib.net.SimpleSSLContext
|
||||
* @run testng/othervm -Djdk.httpclient.HttpClient.log=ssl,requests,responses,errors,http3,quic:control
|
||||
* -Djdk.internal.httpclient.debug=false
|
||||
* -Djdk.httpclient.quic.maxBidiStreams=1
|
||||
* -Djdk.internal.httpclient.quic.maxBidiStreams=1
|
||||
* -Djdk.httpclient.http3.maxStreamLimitTimeout=0
|
||||
* -Djdk.httpclient.retryOnStreamlimit=9
|
||||
* H3StreamLimitReachedTest
|
||||
@ -93,7 +129,7 @@ import static org.testng.Assert.assertFalse;
|
||||
|
||||
public class H3StreamLimitReachedTest implements HttpServerAdapters {
|
||||
|
||||
private static final String CLASS_NAME = H3ConnectionPoolTest.class.getSimpleName();
|
||||
private static final String CLASS_NAME = H3StreamLimitReachedTest.class.getSimpleName();
|
||||
|
||||
static int altsvcPort, https2Port, http3Port;
|
||||
static Http3TestServer http3OnlyServer;
|
||||
|
||||
@ -56,7 +56,10 @@ import static java.net.http.HttpOption.H3_DISCOVERY;
|
||||
/*
|
||||
* @test
|
||||
* @summary verifies that when the Quic stream limit is reached
|
||||
* then HTTP3 requests are retried on newer connection
|
||||
* then HTTP3 requests are retried on newer connection.
|
||||
* This test uses an HTTP/3 only test server, which is
|
||||
* configured to allow the test to control when a new
|
||||
* MAX_STREAMS frames is sent to the client.
|
||||
* @library /test/lib /test/jdk/java/net/httpclient/lib
|
||||
* @build jdk.test.lib.net.SimpleSSLContext
|
||||
* jdk.httpclient.test.lib.common.HttpServerAdapters
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user