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

The SingleThreadColocationLogger executorService is not shutdown when the server is stopped

    XMLWordPrintableJSON

Details

    Description

      When a server is shutdown, its JVM remains alive because the ExecutorService created by the SingleThreadColocationLogger is not terminated nor is its thread a daemon:

      "ColocationLogger for customer" #57 prio=5 os_prio=31 tid=0x00007fb39d4e4000 nid=0xb203 waiting on condition [0x000070000dc58000]
         java.lang.Thread.State: WAITING (parking)
      	at sun.misc.Unsafe.park(Native Method)
      	- parking to wait for  <0x0000000785268818> (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:1067)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      The SingleThreadColocationLogger only gets created when there are missing co-located regions.

      We can either terminate the ExecutorService or make its thread a daemon or both.

      Attachments

        Activity

          People

            boglesby Barrett Oglesby
            boglesby Barrett Oglesby
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: