[
https://issues.apache.org/jira/browse/HBASE-4863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157397#comment-13157397
]
Hudson commented on HBASE-4863:
-------------------------------
Integrated in HBase-TRUNK-security #10 (See
[https://builds.apache.org/job/HBase-TRUNK-security/10/])
HBASE-4863 Addendum to add category for TestThreads
HBASE-4863 Phabricator D531 Make Thrift server thread pool bounded and add a
command-line UI test
tedyu :
Files :
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestThreads.java
tedyu :
Files :
*
/hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/Threads.java
* /hbase/trunk/src/main/resources/hbase-default.xml
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
*
/hbase/trunk/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java
*
/hbase/trunk/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestThreads.java
> Make Thrift server thread pool bounded and add a command-line UI test
> ---------------------------------------------------------------------
>
> Key: HBASE-4863
> URL: https://issues.apache.org/jira/browse/HBASE-4863
> Project: HBase
> Issue Type: Improvement
> Reporter: Mikhail Bautin
> Assignee: Mikhail Bautin
> Fix For: 0.94.0
>
> Attachments:
> 0001-Fix-thread-leaks-in-the-HBase-thread-pool-server.patch,
> 0002-Fix-thread-leaks-in-the-HBase-thread-pool-server.patch, 4863.addendum,
> D531.1.patch, D531.2.patch, D531.3.patch, D531.4.patch
>
>
> This started as an internal hotfix where we found out that the Thrift server
> spawned 15000 threads. To bound the thread pool size I added a custom thread
> pool server implementation called HBaseThreadPoolServer into HBase codebase,
> and made the following parameters configurable from both command line and as
> config settings: minWorkerThreads, maxWorkerThreads, and maxQueuedRequests.
> Under an increasing load, the server creates new threads for every connection
> before the pool size reaches minWorkerThreads. After that, the server puts
> new connections into the queue and only creates a new thread when the queue
> is full. If an attempt to create a new thread fails, the server drops
> connection. The default TThreadPoolServer would crash in that case, but it
> never happened because the thread pool was unbounded, so the server would
> hang indefinitely, consume a lot of memory, and cause huge latency spikes on
> the client side.
> Another part of this fix is refactoring and unit testing of the command-line
> part of the Thrift server. The logic there is sufficiently complicated, and
> the existing ThriftServer class does not test that part at all. The new
> TestThriftServerCmdLine test starts the Thrift server on a random port with
> various combinations of options and talks to it through the client API from
> another thread.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira