Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-7432

Thread pool clean up code can lead to infinite loops in ThreadLocal.get

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: Commons Threads 3.2.10
    • Fix Version/s: Commons Threads 3.2.16
    • Component/s: Commons
    • Labels:
      None

      Description

      The thread local clean up code added in SLING-6261 leads to Threads stuck in ThreadLocal.get.

      I am working on a simplified test case, but the stack trace is similar to

      "pool-1-thread-1" prio=10 tid=0x00007f47f4374800 nid=0xb19 runnable [0x00007f47e734e000]
         java.lang.Thread.State: RUNNABLE
      	at java.lang.ThreadLocal$ThreadLocalMap.set(ThreadLocal.java:429)
      	at java.lang.ThreadLocal$ThreadLocalMap.access$100(ThreadLocal.java:261)
      	at java.lang.ThreadLocal.set(ThreadLocal.java:183)
      	at org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocalsTest$RunnableImplementation.run(ThreadPoolExecutorCleaningThreadLocalsTest.java:100)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                rombert Robert Munteanu
                Reporter:
                rombert Robert Munteanu
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: