From 1e26ef88da0c40209c28931a129133259ee199a8 Mon Sep 17 00:00:00 2001 From: Sergey Soldatov Date: Tue, 22 Feb 2022 17:43:41 -0800 Subject: [PATCH 1/2] HBASE-26767 Rest server should not use a large Header Cache. --- .../main/java/org/apache/hadoop/hbase/rest/RESTServer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java index d584cdd4d23b..7006da8a7aeb 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java @@ -94,6 +94,8 @@ public class RESTServer implements Constants { static final String REST_CSRF_METHODS_TO_IGNORE_DEFAULT = "GET,OPTIONS,HEAD,TRACE"; public static final String SKIP_LOGIN_KEY = "hbase.rest.skip.login"; static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k + static final String HTTP_HEADER_CACHE_SIZE = "hbase.rest.jetty.httpConfig.headerCacheSize"; + static final int DEFAULT_HTTP_HEADER_CACHE_SIZE = Character.MAX_VALUE -1; private static final String PATH_SPEC_ANY = "/*"; @@ -291,10 +293,12 @@ public synchronized void run() throws Exception { String host = servlet.getConfiguration().get("hbase.rest.host", "0.0.0.0"); int servicePort = servlet.getConfiguration().getInt("hbase.rest.port", 8080); + int httpHeaderCacheSize = servlet.getConfiguration().getInt(HTTP_HEADER_CACHE_SIZE, + DEFAULT_HTTP_HEADER_CACHE_SIZE); HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setSecureScheme("https"); httpConfig.setSecurePort(servicePort); - httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE); + httpConfig.setHeaderCacheSize(httpHeaderCacheSize); httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE); httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE); httpConfig.setSendServerVersion(false); From 62079dc9b5a9ed8ff6bc7e38efd61936e5260d10 Mon Sep 17 00:00:00 2001 From: Sergey Soldatov Date: Wed, 23 Feb 2022 21:03:27 +0300 Subject: [PATCH 2/2] Update hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java Co-authored-by: Tak Lon (Stephen) Wu --- .../src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java index 7006da8a7aeb..3911d2d5637e 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RESTServer.java @@ -94,7 +94,7 @@ public class RESTServer implements Constants { static final String REST_CSRF_METHODS_TO_IGNORE_DEFAULT = "GET,OPTIONS,HEAD,TRACE"; public static final String SKIP_LOGIN_KEY = "hbase.rest.skip.login"; static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k - static final String HTTP_HEADER_CACHE_SIZE = "hbase.rest.jetty.httpConfig.headerCacheSize"; + static final String HTTP_HEADER_CACHE_SIZE = "hbase.rest.http.header.cache.size"; static final int DEFAULT_HTTP_HEADER_CACHE_SIZE = Character.MAX_VALUE -1; private static final String PATH_SPEC_ANY = "/*";