Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-3711

Unsustainable Thread Accumulation in ParallelCompactionIterable.Reducer ThreadPoolExecutor

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.0.7
    • None
    • Low

    Description

      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)

      Attachments

        1. 3711.txt
          2 kB
          Jonathan Ellis
        2. 3711.2.txt
          5 kB
          Caleb Rackliffe

        Activity

          People

            jbellis Jonathan Ellis
            maedhroz Caleb Rackliffe
            Jonathan Ellis
            Sylvain Lebresne
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: