Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.11.0
-
None
Description
If the WebServer is launched on a machine that has more than 200 cores, you get the following stack trace:
Exception in thread "main" org.apache.drill.exec.exception.DrillStartupException: Failure during initial startup of Drillbit: at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:313) at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:289) at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:285) Caused by: java.lang.IllegalStateException: Insufficient max threads in ThreadPool: max=200 < needed=206 at org.eclipse.jetty.server.Server.doStart(Server.java:321) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) at org.eclipse.drill.exec.server.rest.WebServer.start(WebServer.java:197) at org.eclipse.drill.exec.server.Drillbit.run(Drillbit.java:140) at org.eclipse.drill.exec.server.Drillbit.start(Drillbit.java:309) ... 2 more
The cause of this is that in the WebServer start method, a Server instance is created with the default constructor, which initializes a QueuedThreadPool with a default maxThreads value of 200, and there is no way to configure this value.
For documentation
New config option - drill.exec.web_server.thread_pool_max drill.exec.http.jetty.server.acceptors (default 1) and drill.exec.http.jetty.server.selectors (default 2).
Attachments
Issue Links
- causes
-
DRILL-6693 When a query is started from Drill Web Console, the UI becomes inaccessible until the query is completed
- Resolved
- links to