From fc298de5480f494ac502706b4ddd288835a61ae2 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Thu, 6 Mar 2025 22:08:19 +0800 Subject: [PATCH] made chunk size a global shared parameter between the server and the cache backends --- doc/server_configuration.md | 8 +++---- .../rbcs/api/CacheHandlerFactory.java | 1 + .../net/woggioni/rbcs/api/Configuration.java | 1 + rbcs-server-memcache/README.md | 5 ++-- .../memcache/MemcacheCacheConfiguration.kt | 8 +++---- .../server/memcache/MemcacheCacheProvider.kt | 7 +----- rbcs-server/src/main/java/module-info.java | 1 + .../rbcs/server/RemoteBuildCacheServer.kt | 8 +++++-- .../cache/FileSystemCacheConfiguration.kt | 4 ++-- .../server/cache/FileSystemCacheProvider.kt | 5 ---- .../cache/InMemoryCacheConfiguration.kt | 2 +- .../server/cache/InMemoryCacheProvider.kt | 5 ---- .../rbcs/server/configuration/Parser.kt | 12 ++++++---- .../rbcs/server/configuration/Serializer.kt | 1 + .../server/handler/CacheContentHandler.kt | 2 +- .../rbcs/server/schema/rbcs-server.xsd | 23 +++++++------------ .../test/AbstractBasicAuthServerTest.kt | 6 ++--- .../rbcs/server/test/AbstractTlsServerTest.kt | 4 ++-- .../rbcs/server/test/NoAuthServerTest.kt | 4 ++-- .../rbcs/server/test/valid/rbcs-default.xml | 5 ++-- .../server/test/valid/rbcs-memcached-tls.xml | 5 ++-- .../rbcs/server/test/valid/rbcs-memcached.xml | 5 ++-- .../rbcs/server/test/valid/rbcs-tls.xml | 5 ++-- 23 files changed, 59 insertions(+), 68 deletions(-) diff --git a/doc/server_configuration.md b/doc/server_configuration.md index 5ae16c5..a10ddbb 100644 --- a/doc/server_configuration.md +++ b/doc/server_configuration.md @@ -24,6 +24,7 @@ Configures connection handling parameters. - `read-idle-timeout` (optional, default: PT60S): Connection timeout when no reads - `write-idle-timeout` (optional, default: PT60S): Connection timeout when no writes - `max-request-size` (optional, default: 0x4000000): Maximum allowed request body size +- `chunk-size` (default: 0x10000): Maximum socket write size #### `` Configures event execution settings. @@ -44,7 +45,6 @@ A simple storage backend that uses an hash map to store data in memory - `digest` (default: MD5): Key hashing algorithm - `enable-compression` (default: true): Enable deflate compression - `compression-level` (default: -1): Compression level (-1 to 9) -- `chunk-size` (default: 0x10000): Maximum socket write size ##### FileSystem Cache @@ -56,7 +56,6 @@ A storage backend that stores data in a folder on the disk - `digest` (default: MD5): Key hashing algorithm - `enable-compression` (default: true): Enable deflate compression - `compression-level` (default: -1): Compression level -- `chunk-size` (default: 0x10000): Maximum in-memory cache value size #### `` Configures user and group-based access control. @@ -134,8 +133,7 @@ Configures TLS encryption. idle-timeout="PT10S" read-idle-timeout="PT20S" write-idle-timeout="PT20S" - read-timeout="PT5S" - write-timeout="PT5S"/> + chunk-size="0x1000"/> @@ -147,7 +145,7 @@ Configures TLS encryption. diff --git a/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheHandlerFactory.java b/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheHandlerFactory.java index ce7b5fa..1a86b4b 100644 --- a/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheHandlerFactory.java +++ b/rbcs-api/src/main/java/net/woggioni/rbcs/api/CacheHandlerFactory.java @@ -8,6 +8,7 @@ import io.netty.channel.socket.SocketChannel; public interface CacheHandlerFactory extends AsyncCloseable { ChannelHandler newHandler( + Configuration configuration, EventLoopGroup eventLoopGroup, ChannelFactory socketChannelFactory, ChannelFactory datagramChannelFactory diff --git a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java index ce23be6..7ef2dba 100644 --- a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java +++ b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java @@ -39,6 +39,7 @@ public class Configuration { Duration readIdleTimeout; Duration writeIdleTimeout; int maxRequestSize; + int chunkSize; } @Value diff --git a/rbcs-server-memcache/README.md b/rbcs-server-memcache/README.md index 7badcb9..a5c3c0e 100644 --- a/rbcs-server-memcache/README.md +++ b/rbcs-server-memcache/README.md @@ -22,7 +22,7 @@ The plugins currently supports the following configuration attributes: - `digest`: digest algorithm to use on the key before submission to memcache (optional, no digest is applied if omitted) - `compression`: compression algorithm to apply to cache values before, - currently only `deflate` is supported (optionla, if omitted compression is disabled) + currently only `deflate` is supported (optional, if omitted compression is disabled) - `compression-level`: compression level to use, deflate supports compression levels from 1 to 9, where 1 is for fast compression at the expense of speed (optional, 6 is used if omitted) ```xml @@ -37,8 +37,7 @@ The plugins currently supports the following configuration attributes: max-age="P7D" digest="SHA-256" compression-mode="deflate" - compression-level="6" - chunk-size="0x10000"> + compression-level="6"> diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt index f281076..5c4896c 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheConfiguration.kt @@ -23,7 +23,6 @@ data class MemcacheCacheConfiguration( val digestAlgorithm: String? = null, val compressionMode: CompressionMode? = null, val compressionLevel: Int, - val chunkSize: Int ) : Configuration.Cache { companion object { @@ -48,14 +47,15 @@ data class MemcacheCacheConfiguration( private val connectionPoolMap = ConcurrentHashMap() override fun newHandler( + cfg : Configuration, eventLoop: EventLoopGroup, socketChannelFactory: ChannelFactory, - datagramChannelFactory: ChannelFactory + datagramChannelFactory: ChannelFactory, ): ChannelHandler { return MemcacheCacheHandler( MemcacheClient( this@MemcacheCacheConfiguration.servers, - chunkSize, + cfg.connection.chunkSize, eventLoop, socketChannelFactory, connectionPoolMap @@ -63,7 +63,7 @@ data class MemcacheCacheConfiguration( digestAlgorithm, compressionMode != null, compressionLevel, - chunkSize, + cfg.connection.chunkSize, maxAge ) } diff --git a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt index 371c13d..c7ebee0 100644 --- a/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt +++ b/rbcs-server-memcache/src/main/kotlin/net/woggioni/rbcs/server/memcache/MemcacheCacheProvider.kt @@ -28,9 +28,6 @@ class MemcacheCacheProvider : CacheProvider { val maxAge = el.renderAttribute("max-age") ?.let(Duration::parse) ?: Duration.ofDays(1) - val chunkSize = el.renderAttribute("chunk-size") - ?.let(Integer::decode) - ?: 0x10000 val compressionLevel = el.renderAttribute("compression-level") ?.let(Integer::decode) ?: -1 @@ -63,8 +60,7 @@ class MemcacheCacheProvider : CacheProvider { maxAge, digestAlgorithm, compressionMode, - compressionLevel, - chunkSize + compressionLevel ) } @@ -84,7 +80,6 @@ class MemcacheCacheProvider : CacheProvider { } } attr("max-age", maxAge.toString()) - attr("chunk-size", chunkSize.toString()) digestAlgorithm?.let { digestAlgorithm -> attr("digest", digestAlgorithm) } diff --git a/rbcs-server/src/main/java/module-info.java b/rbcs-server/src/main/java/module-info.java index 5f8951a..055e4a4 100644 --- a/rbcs-server/src/main/java/module-info.java +++ b/rbcs-server/src/main/java/module-info.java @@ -24,6 +24,7 @@ module net.woggioni.rbcs.server { opens net.woggioni.rbcs.server; opens net.woggioni.rbcs.server.schema; + uses CacheProvider; provides CacheProvider with FileSystemCacheProvider, InMemoryCacheProvider; } \ No newline at end of file diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt index bce71ce..83bcd66 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt @@ -21,6 +21,7 @@ import io.netty.channel.socket.nio.NioSocketChannel import io.netty.handler.codec.compression.CompressionOptions import io.netty.handler.codec.http.DefaultHttpContent import io.netty.handler.codec.http.HttpContentCompressor +import io.netty.handler.codec.http.HttpDecoderConfig import io.netty.handler.codec.http.HttpHeaderNames import io.netty.handler.codec.http.HttpRequest import io.netty.handler.codec.http.HttpServerCodec @@ -340,7 +341,10 @@ class RemoteBuildCacheServer(private val cfg: Configuration) { sslContext?.newHandler(ch.alloc())?.also { pipeline.addLast(SSL_HANDLER_NAME, it) } - pipeline.addLast(HttpServerCodec()) + val httpDecoderConfig = HttpDecoderConfig().apply { + maxChunkSize = cfg.connection.chunkSize + } + pipeline.addLast(HttpServerCodec(httpDecoderConfig)) pipeline.addLast(MaxRequestSizeHandler.NAME, MaxRequestSizeHandler(cfg.connection.maxRequestSize)) pipeline.addLast(HttpChunkContentCompressor(1024)) pipeline.addLast(ChunkedWriteHandler()) @@ -355,7 +359,7 @@ class RemoteBuildCacheServer(private val cfg: Configuration) { } pipeline.addLast(eventExecutorGroup, ServerHandler.NAME, serverHandler) - pipeline.addLast(cacheHandlerFactory.newHandler(ch.eventLoop(), channelFactory, datagramChannelFactory)) + pipeline.addLast(cacheHandlerFactory.newHandler(cfg, ch.eventLoop(), channelFactory, datagramChannelFactory)) pipeline.addLast(TraceHandler) pipeline.addLast(ExceptionHandler) } diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt index aa7018d..1c44a10 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheConfiguration.kt @@ -17,7 +17,6 @@ data class FileSystemCacheConfiguration( val digestAlgorithm : String?, val compressionEnabled: Boolean, val compressionLevel: Int, - val chunkSize: Int, ) : Configuration.Cache { override fun materialize() = object : CacheHandlerFactory { @@ -26,10 +25,11 @@ data class FileSystemCacheConfiguration( override fun asyncClose() = cache.asyncClose() override fun newHandler( + cfg : Configuration, eventLoop: EventLoopGroup, socketChannelFactory: ChannelFactory, datagramChannelFactory: ChannelFactory - ) = FileSystemCacheHandler(cache, digestAlgorithm, compressionEnabled, compressionLevel, chunkSize) + ) = FileSystemCacheHandler(cache, digestAlgorithm, compressionEnabled, compressionLevel, cfg.connection.chunkSize) } override fun getNamespaceURI() = RBCS.RBCS_NAMESPACE_URI diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt index c97c112..a708433 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/FileSystemCacheProvider.kt @@ -31,9 +31,6 @@ class FileSystemCacheProvider : CacheProvider { ?.let(String::toInt) ?: Deflater.DEFAULT_COMPRESSION val digestAlgorithm = el.renderAttribute("digest") - val chunkSize = el.renderAttribute("chunk-size") - ?.let(Integer::decode) - ?: 0x10000 return FileSystemCacheConfiguration( path, @@ -41,7 +38,6 @@ class FileSystemCacheProvider : CacheProvider { digestAlgorithm, enableCompression, compressionLevel, - chunkSize ) } @@ -63,7 +59,6 @@ class FileSystemCacheProvider : CacheProvider { }?.let { attr("compression-level", it.toString()) } - attr("chunk-size", chunkSize.toString()) } result } diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt index a99b3d9..52ddafa 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheConfiguration.kt @@ -16,7 +16,6 @@ data class InMemoryCacheConfiguration( val digestAlgorithm : String?, val compressionEnabled: Boolean, val compressionLevel: Int, - val chunkSize : Int ) : Configuration.Cache { override fun materialize() = object : CacheHandlerFactory { private val cache = InMemoryCache(maxAge, maxSize) @@ -24,6 +23,7 @@ data class InMemoryCacheConfiguration( override fun asyncClose() = cache.asyncClose() override fun newHandler( + cfg : Configuration, eventLoop: EventLoopGroup, socketChannelFactory: ChannelFactory, datagramChannelFactory: ChannelFactory diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt index c5f8dd2..51f88ba 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/cache/InMemoryCacheProvider.kt @@ -31,16 +31,12 @@ class InMemoryCacheProvider : CacheProvider { ?.let(String::toInt) ?: Deflater.DEFAULT_COMPRESSION val digestAlgorithm = el.renderAttribute("digest") - val chunkSize = el.renderAttribute("chunk-size") - ?.let(Integer::decode) - ?: 0x10000 return InMemoryCacheConfiguration( maxAge, maxSize, digestAlgorithm, enableCompression, compressionLevel, - chunkSize ) } @@ -60,7 +56,6 @@ class InMemoryCacheProvider : CacheProvider { }?.let { attr("compression-level", it.toString()) } - attr("chunk-size", chunkSize.toString()) } result } diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt index 1c487c8..fe85ead 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt @@ -27,10 +27,11 @@ object Parser { val root = document.documentElement val anonymousUser = User("", null, emptySet(), null) var connection: Configuration.Connection = Configuration.Connection( + Duration.of(30, ChronoUnit.SECONDS), Duration.of(60, ChronoUnit.SECONDS), - Duration.of(30, ChronoUnit.SECONDS), - Duration.of(30, ChronoUnit.SECONDS), - 67108864 + Duration.of(60, ChronoUnit.SECONDS), + 0x4000000, + 0x10000 ) var eventExecutor: Configuration.EventExecutor = Configuration.EventExecutor(true) var cache: Cache? = null @@ -119,11 +120,14 @@ object Parser { ?.let(Duration::parse) ?: Duration.of(60, ChronoUnit.SECONDS) val maxRequestSize = child.renderAttribute("max-request-size") ?.let(Integer::decode) ?: 0x4000000 + val chunkSize = child.renderAttribute("chunk-size") + ?.let(Integer::decode) ?: 0x10000 connection = Configuration.Connection( idleTimeout, readIdleTimeout, writeIdleTimeout, - maxRequestSize + maxRequestSize, + chunkSize ) } diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt index 11c4821..39e21a4 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt @@ -40,6 +40,7 @@ object Serializer { attr("read-idle-timeout", connection.readIdleTimeout.toString()) attr("write-idle-timeout", connection.writeIdleTimeout.toString()) attr("max-request-size", connection.maxRequestSize.toString()) + attr("chunk-size", connection.chunkSize.toString()) } } node("event-executor") { diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/CacheContentHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/CacheContentHandler.kt index 5c89269..83ae6f6 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/CacheContentHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/handler/CacheContentHandler.kt @@ -22,7 +22,7 @@ object CacheContentHandler : SimpleChannelInboundHandler() { } } - override fun exceptionCaught(ctx: ChannelHandlerContext?, cause: Throwable?) { + override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) { super.exceptionCaught(ctx, cause) } } \ No newline at end of file diff --git a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd index 85a0d16..5271665 100644 --- a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd +++ b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd @@ -115,6 +115,14 @@ + + + + Maximum byte size of socket write calls + (reduce it to reduce memory consumption, increase it for increased throughput) + + + @@ -175,13 +183,6 @@ - - - - Maximum byte size of socket write calls - - - @@ -231,14 +232,6 @@ - - - - Maximum byte size of a cache value that will be stored in memory - (reduce it to reduce memory consumption, increase it for increased throughput) - - - diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt index 2ebc8c2..b55dc92 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt @@ -41,7 +41,8 @@ abstract class AbstractBasicAuthServerTest : AbstractServerTest() { Duration.of(60, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), - 0x1000 + 0x1000, + 0x10000 ), users.asSequence().map { it.name to it}.toMap(), sequenceOf(writersGroup, readersGroup).map { it.name to it}.toMap(), @@ -50,8 +51,7 @@ abstract class AbstractBasicAuthServerTest : AbstractServerTest() { maxAge = Duration.ofSeconds(3600 * 24), digestAlgorithm = "MD5", compressionLevel = Deflater.DEFAULT_COMPRESSION, - compressionEnabled = false, - chunkSize = 0x1000 + compressionEnabled = false ), Configuration.BasicAuthentication(), null, diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt index fc9080c..df2d1e7 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt @@ -147,7 +147,8 @@ abstract class AbstractTlsServerTest : AbstractServerTest() { Duration.of(60, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), - 0x1000 + 0x1000, + 0x10000 ), users.asSequence().map { it.name to it }.toMap(), sequenceOf(writersGroup, readersGroup).map { it.name to it }.toMap(), @@ -156,7 +157,6 @@ abstract class AbstractTlsServerTest : AbstractServerTest() { compressionEnabled = false, compressionLevel = Deflater.DEFAULT_COMPRESSION, digestAlgorithm = "MD5", - chunkSize = 0x1000 ), // InMemoryCacheConfiguration( // maxAge = Duration.ofSeconds(3600 * 24), diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt index 5d222e1..d258179 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt @@ -41,7 +41,8 @@ class NoAuthServerTest : AbstractServerTest() { Duration.of(60, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), Duration.of(30, ChronoUnit.SECONDS), - 0x1000 + 0x1000, + 0x10000 ), emptyMap(), emptyMap(), @@ -51,7 +52,6 @@ class NoAuthServerTest : AbstractServerTest() { digestAlgorithm = "MD5", compressionLevel = Deflater.DEFAULT_COMPRESSION, maxSize = 0x1000000, - chunkSize = 0x1000 ), null, null, diff --git a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml index b25f4c7..e30c89d 100644 --- a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml +++ b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml @@ -7,9 +7,10 @@ read-idle-timeout="PT10M" write-idle-timeout="PT11M" idle-timeout="PT30M" - max-request-size="101325"/> + max-request-size="101325" + chunk-size="0xa910"/> - + diff --git a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached-tls.xml b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached-tls.xml index 7a58186..0948ac7 100644 --- a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached-tls.xml +++ b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached-tls.xml @@ -9,9 +9,10 @@ max-request-size="67108864" idle-timeout="PT30S" read-idle-timeout="PT60S" - write-idle-timeout="PT60S"/> + write-idle-timeout="PT60S" + chunk-size="123"/> - + diff --git a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached.xml b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached.xml index 51a848c..54b0680 100644 --- a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached.xml +++ b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-memcached.xml @@ -8,9 +8,10 @@ read-idle-timeout="PT10M" write-idle-timeout="PT11M" idle-timeout="PT30M" - max-request-size="101325"/> + max-request-size="101325" + chunk-size="456"/> - + diff --git a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-tls.xml b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-tls.xml index 1eaa994..5001fdf 100644 --- a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-tls.xml +++ b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-tls.xml @@ -7,9 +7,10 @@ read-idle-timeout="PT10M" write-idle-timeout="PT11M" idle-timeout="PT30M" - max-request-size="4096"/> + max-request-size="4096" + chunk-size="0xa91f"/> - +