[
https://issues.apache.org/jira/browse/CASSANDRA-3711?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13182689#comment-13182689
]
Caleb William Rackliffe commented on CASSANDRA-3711:
----------------------------------------------------
Yeah, I think you're right. In retrospect, my idea would only have been useful
(maybe) if the compactions were CPU-bound, which I guess is not the case.
I can't wait for this release, because I can stop doing rolling restarts every
few days!
> Unsustainable Thread Accumulation in ParallelCompactionIterable.Reducer
> ThreadPoolExecutor
> ------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-3711
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3711
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.0
> Environment: - Linux version 2.6.32-71.29.1.el6.x86_64
> ([email protected]) (gcc version 4.4.4 20100726 (Red Hat
> 4.4.4-13) (GCC) ) #1 SMP Mon Jun 27 19:49:27 BST 2011
> - java version "1.7.0_01" / Java(TM) SE Runtime Environment (build
> 1.7.0_01-b08) / Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)
> Reporter: Caleb William Rackliffe
> Assignee: Jonathan Ellis
> Priority: Minor
> Labels: compaction, memory_leak, threading, threads
> Fix For: 1.0.7
>
> Attachments: 3711.2.txt, 3711.txt
>
>
> With multithreaded compaction enabled, it looks like Reducer creates a new
> thread pool for every compaction. These pools seem to just sit around - i.e.
> "executor.shutdown()" never gets called and the Threads live forever waiting
> for tasks that will never come. For instance...
> Name: CompactionReducer:1
> State: TIMED_WAITING on
> java.util.concurrent.SynchronousQueue$TransferStack@72938aea
> Total blocked: 0 Total waited: 1
> Stack trace:
> sun.misc.Unsafe.park(Native Method)
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
> java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
> java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> java.lang.Thread.run(Thread.java:722)
--
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