From e819809723ad8f6a5f18ec87dbe809247b2ebb33 Mon Sep 17 00:00:00 2001 From: Ludovic Orban Date: Mon, 27 Feb 2023 09:12:50 +0100 Subject: [PATCH] Fix `HugeResourceTest` (#9411) #9408: restored HugeResourceTest: - fixed double-release bug in MultiPartFormData - used ByteBufferPool.NonPooling pool to work around #9311 Signed-off-by: Ludovic Orban --- .../eclipse/jetty/http/MultiPartFormData.java | 1 + .../jetty/ee10/webapp/HugeResourceTest.java | 34 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormData.java b/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormData.java index 9e03566e2bb..c4611d495a9 100644 --- a/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormData.java +++ b/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/MultiPartFormData.java @@ -469,6 +469,7 @@ public class MultiPartFormData extends CompletableFuture ret = new ArrayList<>(); - ret.add(Arguments.of("test-1M.dat", MB)); - ret.add(Arguments.of("test-100M.dat", 100 * MB)); - ret.add(Arguments.of("test-1G.dat", GB)); - // ret.add(Arguments.of("test-4G.dat", 4 * GB)); - // ret.add(Arguments.of("test-1Gg.dat", 10 * GB)); + ret.add(Arguments.of("test-1m.dat", MB)); + ret.add(Arguments.of("test-1g.dat", GB)); + ret.add(Arguments.of("test-4g.dat", 4 * GB)); + ret.add(Arguments.of("test-10g.dat", 10 * GB)); return ret.stream(); } @@ -202,7 +201,8 @@ public class HugeResourceTest QueuedThreadPool serverThreads = new QueuedThreadPool(); serverThreads.setDetailedDump(true); serverThreads.setName("server"); - server = new Server(serverThreads); + // TODO: Use normal pool when a fix for https://github.com/eclipse/jetty.project/issues/9311 is merged. + server = new Server(serverThreads, null, new ByteBufferPool.NonPooling()); httpConfig = new HttpConfiguration(); ServerConnector connector = new ServerConnector(server, 1, 1, new HttpConnectionFactory(httpConfig)); connector.setPort(0); @@ -249,6 +249,8 @@ public class HugeResourceTest connector.setSelectors(1); connector.setExecutor(clientThreads); client = new HttpClient(new HttpClientTransportOverHTTP(connector)); + // TODO: Use normal pool when a fix for https://github.com/eclipse/jetty.project/issues/9311 is merged. + client.setByteBufferPool(new ByteBufferPool.NonPooling()); client.start(); } @@ -428,7 +430,7 @@ public class HugeResourceTest Thread.sleep(100); stalled.set(false); demand.get().run(); - assertTrue(complete.await(30, TimeUnit.SECONDS)); + assertTrue(complete.await(60, TimeUnit.SECONDS)); Response response = responseRef.get(); assertThat("HTTP Response Code", response.getStatus(), is(200)); @@ -603,9 +605,9 @@ public class HugeResourceTest IO.copy(inputStream, byteCounting); out.printf("part[%s].inputStream.length=%d%n", part.getName(), byteCounting.getCount()); } - catch (IOException e) + catch (Throwable x) { - e.printStackTrace(out); + throw new AssertionError(x); } }); }