You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/12/21 02:18:40 UTC
[pulsar] 08/16: [Proxy] Fix issue when Proxy fails to start and logs about an uncaught exception (#13171)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit b0d7960e1f562f47269305efe6f8ae5727fa2ac6
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Dec 7 18:21:42 2021 +0200
[Proxy] Fix issue when Proxy fails to start and logs about an uncaught exception (#13171)
* [Proxy] Print stacktrace in uncaught exception handler
* [Proxy] Fix IllegalStateException: Insufficient configured threads
- happens at startup since the proxy client consumes 50% of number of available CPU cores
for selectors
(cherry picked from commit 3986be6ebe93c1a6ebfa3c3e731b45a6d17948d2)
---
.../java/org/apache/pulsar/proxy/server/AdminProxyHandler.java | 7 +++++--
.../java/org/apache/pulsar/proxy/server/ProxyServiceStarter.java | 1 +
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/AdminProxyHandler.java b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/AdminProxyHandler.java
index 7d3c658..853eb0b 100644
--- a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/AdminProxyHandler.java
+++ b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/AdminProxyHandler.java
@@ -53,6 +53,7 @@ import org.eclipse.jetty.client.ProtocolHandlers;
import org.eclipse.jetty.client.RedirectProtocolHandler;
import org.eclipse.jetty.client.api.ContentProvider;
import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.proxy.ProxyServlet;
import org.eclipse.jetty.util.HttpCookieStore;
@@ -209,12 +210,14 @@ class AdminProxyHandler extends ProxyServlet {
}
private static class JettyHttpClient extends HttpClient {
+ private static final int NUMBER_OF_SELECTOR_THREADS = 1;
+
public JettyHttpClient() {
- super();
+ super(new HttpClientTransportOverHTTP(NUMBER_OF_SELECTOR_THREADS), null);
}
public JettyHttpClient(SslContextFactory sslContextFactory) {
- super(sslContextFactory);
+ super(new HttpClientTransportOverHTTP(NUMBER_OF_SELECTOR_THREADS), sslContextFactory);
}
/**
diff --git a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyServiceStarter.java b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyServiceStarter.java
index 235927c..c16844c 100644
--- a/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyServiceStarter.java
+++ b/pulsar-proxy/src/main/java/org/apache/pulsar/proxy/server/ProxyServiceStarter.java
@@ -108,6 +108,7 @@ public class ProxyServiceStarter {
FixedDateFormat.FixedFormat.ISO8601_OFFSET_DATE_TIME_HHMM.getPattern());
Thread.setDefaultUncaughtExceptionHandler((thread, exception) -> {
System.out.println(String.format("%s [%s] error Uncaught exception in thread %s: %s", dateFormat.format(new Date()), thread.getContextClassLoader(), thread.getName(), exception.getMessage()));
+ exception.printStackTrace(System.out);
});
JCommander jcommander = new JCommander();