[ https://issues.apache.org/jira/browse/OMID-54?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15425697#comment-15425697 ]
ASF GitHub Bot commented on OMID-54: ------------------------------------ GitHub user francisco-perez-sorrosal opened a pull request: https://github.com/apache/incubator-omid/pull/8 [OMID-54] Fix leak of CommitTable.Client objects in Compactor Coproce… …ssor Now, each time preCompact() is called, a new CommitTable.Client object is created. A factory for CommitTable clients has been created in order to allow to inject mocked instances in Coprocessor tests. Change-Id: If32f3b09b68c61f4f6d573feeb89080b04f1bfe4 You can merge this pull request into a Git repository by running: $ git pull https://github.com/francisco-perez-sorrosal/incubator-omid omid-54 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-omid/pull/8.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #8 ---- commit b1749caf0b25aa92c781af255c9df67176b31e9d Author: Francisco Perez-Sorrosal <fpe...@yahoo-inc.com> Date: 2016-08-18T01:00:44Z [OMID-54] Fix leak of CommitTable.Client objects in Compactor Coprocessor Now, each time preCompact() is called, a new CommitTable.Client object is created. A factory for CommitTable clients has been created in order to allow to inject mocked instances in Coprocessor tests. Change-Id: If32f3b09b68c61f4f6d573feeb89080b04f1bfe4 ---- > Leak in Compactor Coprocessor that creates an increasing number of idle > threads > --------------------------------------------------------------------------------- > > Key: OMID-54 > URL: https://issues.apache.org/jira/browse/OMID-54 > Project: Apache Omid > Issue Type: Bug > Affects Versions: 0.8.2.0 > Reporter: Francisco Perez-Sorrosal > Assignee: Francisco Perez-Sorrosal > Fix For: 0.8.3.0 > > > The use of an structure to reuse CommitTable.Client objects has introduced a > side effect that creates an increasing number of those objects, which in turn > contain idle threads that are connected to HBase. > This is what is observed with jstack: > Thread 3047696 (omid-completor-0): > State: WAITING > Blocked count: 0 > Waited count: 1 > Waiting on > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@76e5b0a > Stack: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) > > com.yahoo.omid.committable.hbase.HBaseCommitTable$HBaseClient.run(HBaseCommitTable.java:221) > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > java.util.concurrent.FutureTask.run(FutureTask.java:266) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > Thread 3047652 (omid-completor-0): > State: WAITING > Blocked count: 0 > Waited count: 1 > Waiting on > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e27d8fb > Stack: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) > > com.yahoo.omid.committable.hbase.HBaseCommitTable$HBaseClient.run(HBaseCommitTable.java:221) > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > java.util.concurrent.FutureTask.run(FutureTask.java:266) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > Thread 3041861 (omid-completor-0): > State: WAITING > Blocked count: 0 > Waited count: 1 > Waiting on > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5a279424 > Stack: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) > > com.yahoo.omid.committable.hbase.HBaseCommitTable$HBaseClient.run(HBaseCommitTable.java:221) > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > java.util.concurrent.FutureTask.run(FutureTask.java:266) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > Thread 3041286 (omid-completor-0): > State: WAITING > Blocked count: 0 > Waited count: 2 > Waiting on > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@536fd78 > Stack: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) > > com.yahoo.omid.committable.hbase.HBaseCommitTable$HBaseClient.run(HBaseCommitTable.java:221) > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > java.util.concurrent.FutureTask.run(FutureTask.java:266) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > ... -- This message was sent by Atlassian JIRA (v6.3.4#6332)