Uploaded image for project: 'Lucee Development'
  1. LDEV-1270

request timeout lead to zombie threads in servlet engine

    Details

    • Type: Bug
    • Status: Deployed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.1.4.4, 5.1.4.10
    • Labels:
      None
    • Sprint:
      April 2017 Sprint

      Description

      LDEV-1218 Deployed did address this already, but there is still an issue that leads to zombie threads in the servlet engine.

      What is a Zombie threads and how we do avoid this?
      In case of a request timeout, we do a

      Thread.stop()
      

      for the thread of the Request coming from the servlet engine. what not only throws a "ThreadDeath" in the thread it also makes the thread unusable for further use (different depending on JVM). Problem is that tomcat reuses a thread that stopped because Lucee does not forward that ThreadDeath Error. We fixed this with LDEV-1218 Deployed but this needs an update of the lucee.jar. After the fix of LDEV-1218 Deployed we still saw an issue with that, somehow tomcat seems not really to care about a ThreadDeath and still use the thread. Java 8 also changed

      Thread.stop()
      

      and removed

      Thread.stop(Throwable)
      

      support.

      So the best way to fix this, is never to "stop" a thread coming from Tomcat by opening our own threads.

        Attachments

          Activity

            People

            • Assignee:
              michaeloffner Michael Offner
              Reporter:
              michaeloffner Michael Offner
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: