Repository: asterixdb Updated Branches: refs/heads/master a691dd422 -> aa7f4c039
[NO ISSUE][TEST] Fix HttpServerTest - user model changes: no - storage format changes: no - interface changes: no Details: - Throw exception in case of request too large response is received. - Disable auto-retry on test http client. Change-Id: Ica2a2cb0d79472174e7ac349a618bbd7d27b0086 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2829 Sonar-Qube: Jenkins <[email protected]> Reviewed-by: abdullah alamoudi <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/aa7f4c03 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/aa7f4c03 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/aa7f4c03 Branch: refs/heads/master Commit: aa7f4c039c48adc8e1bcb66e13f7ec7b56cdf407 Parents: a691dd4 Author: Murtadha Hubail <[email protected]> Authored: Tue Jul 31 12:41:15 2018 -0700 Committer: Murtadha Hubail <[email protected]> Committed: Tue Jul 31 17:07:44 2018 -0700 ---------------------------------------------------------------------- .../hyracks/http/test/HttpRequestTask.java | 22 ++++++++++++-------- .../hyracks/http/test/HttpServerTest.java | 12 ++++++----- 2 files changed, 20 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/aa7f4c03/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpRequestTask.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpRequestTask.java b/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpRequestTask.java index 2ab0229..78226ae 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpRequestTask.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpRequestTask.java @@ -32,8 +32,8 @@ import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.client.StandardHttpRequestRetryHandler; import io.netty.handler.codec.http.HttpResponseStatus; @@ -41,8 +41,8 @@ public class HttpRequestTask implements Callable<Void> { protected final HttpUriRequest request; - protected HttpRequestTask(int size) throws URISyntaxException { - request = post(null, size); + protected HttpRequestTask(int entitySize) throws URISyntaxException { + request = post(null, entitySize); } @Override @@ -53,6 +53,8 @@ public class HttpRequestTask implements Callable<Void> { HttpServerTest.SUCCESS_COUNT.incrementAndGet(); } else if (response.getStatusLine().getStatusCode() == HttpResponseStatus.SERVICE_UNAVAILABLE.code()) { HttpServerTest.UNAVAILABLE_COUNT.incrementAndGet(); + } else if (response.getStatusLine().getStatusCode() == HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE.code()) { + throw new Exception(HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE.reasonPhrase()); } else { HttpServerTest.OTHER_COUNT.incrementAndGet(); } @@ -73,7 +75,7 @@ public class HttpRequestTask implements Callable<Void> { } protected HttpResponse executeHttpRequest(HttpUriRequest method) throws Exception { - HttpClient client = HttpClients.custom().setRetryHandler(StandardHttpRequestRetryHandler.INSTANCE).build(); + HttpClient client = HttpClients.custom().setRetryHandler(new DefaultHttpRequestRetryHandler(0, false)).build(); try { return client.execute(method); } catch (Exception e) { @@ -90,7 +92,7 @@ public class HttpRequestTask implements Callable<Void> { return builder.build(); } - protected HttpUriRequest post(String query, int size) throws URISyntaxException { + protected HttpUriRequest post(String query, int entitySize) throws URISyntaxException { URI uri = new URI(HttpServerTest.PROTOCOL, null, HttpServerTest.HOST, HttpServerTest.PORT, HttpServerTest.PATH, query, null); RequestBuilder builder = RequestBuilder.post(uri); @@ -102,11 +104,13 @@ public class HttpRequestTask implements Callable<Void> { String statement = str.toString(); builder.setHeader("Content-type", "application/x-www-form-urlencoded"); builder.addParameter("statement", statement); - for (int i = 0; i < size; i++) { - str.append("This is a string statement that will be ignored"); - str.append('\n'); + if (entitySize > 0) { + str.setLength(0); + for (int i = 0; i < entitySize; i++) { + str.append("x"); + } + builder.setEntity(new StringEntity(str.toString(), StandardCharsets.UTF_8)); } - builder.setEntity(new StringEntity(str.toString(), StandardCharsets.UTF_8)); builder.setCharset(StandardCharsets.UTF_8); return builder.build(); } http://git-wip-us.apache.org/repos/asf/asterixdb/blob/aa7f4c03/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpServerTest.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpServerTest.java b/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpServerTest.java index 8867bb5..b5683ae 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpServerTest.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/test/java/org/apache/hyracks/http/test/HttpServerTest.java @@ -40,6 +40,7 @@ import org.apache.hyracks.http.server.InterruptOnCloseHandler; import org.apache.hyracks.http.server.WebManager; import org.apache.hyracks.http.servlet.ChattyServlet; import org.apache.hyracks.http.servlet.SleepyServlet; +import org.apache.hyracks.util.StorageUtil; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -348,7 +349,8 @@ public class HttpServerTest { public void testLargeRequest() throws Exception { WebManager webMgr = new WebManager(); // Server with max allowed request size = 512K - final HttpServerConfig config = HttpServerConfigBuilder.custom().setMaxRequestSize(512 * 1024).build(); + final int maxRequestSize = StorageUtil.getIntSizeInBytes(512, StorageUtil.StorageUnit.KILOBYTE); + final HttpServerConfig config = HttpServerConfigBuilder.custom().setMaxRequestSize(maxRequestSize).build(); HttpServer server = new HttpServer(webMgr.getBosses(), webMgr.getWorkers(), PORT, config); ChattyServlet servlet = new ChattyServlet(server.ctx(), new String[] { PATH }); server.addServlet(servlet); @@ -356,7 +358,7 @@ public class HttpServerTest { webMgr.start(); Exception failure = null; try { - request(1, 32000); + request(1, maxRequestSize + 1); for (Future<Void> thread : FUTURES) { thread.get(); } @@ -375,12 +377,12 @@ public class HttpServerTest { } private void request(int count) throws URISyntaxException { - request(count, 32); + request(count, 0); } - private void request(int count, int size) throws URISyntaxException { + private void request(int count, int entitySize) throws URISyntaxException { for (int i = 0; i < count; i++) { - HttpRequestTask requestTask = new HttpRequestTask(size); + HttpRequestTask requestTask = new HttpRequestTask(entitySize); Future<Void> next = executor.submit(requestTask); FUTURES.add(next); TASKS.add(requestTask);
