Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-8071

RebalanceCommand Should Use Daemon Threads

    XMLWordPrintableJSON

Details

    Description

      The RebalanceCommand uses a non-daemon thread to execute its internal logic:

      RebalanceCommand.java
      ExecutorService commandExecutors = LoggingExecutors.newSingleThreadExecutor("RebalanceCommand", false);
      

      The above prevents the locator from gracefully shutdown afterwards:

      "RebalanceCommand1" #971 prio=5 os_prio=0 tid=0x00007f9664011000 nid=0x15905 waiting on condition [0x00007f9651471000]
         java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for  <0x00000007308c36e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
              at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
              at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      

      Attachments

        Activity

          People

            jjramos Juan Ramos
            jjramos Juan Ramos
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: