Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-54

SecureHashMap goes into an infinite loop

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.0.0.Alpha17
    • 1.0.0.Alpha15
    • Core
    • None

      While testing one of the quickstarts against WildFly, I noticed that SecureHashMap runs into an infinite loop and as a result the request never completes. The entire thread dump is attached, but the relevant part looks like this:

      "default task-27" prio=10 tid=0x78ff6000 nid=0x41e6 runnable [0x7955c000]
         java.lang.Thread.State: RUNNABLE
      	at io.undertow.util.SecureHashMap.doPut(SecureHashMap.java:218)
      	at io.undertow.util.SecureHashMap.putIfAbsent(SecureHashMap.java:310)
      	at io.undertow.server.handlers.cache.LRUCache.add(LRUCache.java:69)
      	at io.undertow.server.handlers.resource.CachingResourceManager.getResource(CachingResourceManager.java:74)
      	at io.undertow.servlet.handlers.DefaultServlet.doGet(DefaultServlet.java:88)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:87)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
      	at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:138)
      	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56)
      	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
      	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
      	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:56)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:116)
      	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
      	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:79)
      	at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:66)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:71)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:26)
      	at org.wildfly.extension.undertow.security.SecurityContextCreationHandler.handleRequest(SecurityContextCreationHandler.java:56)
      	at io.undertow.server.HttpHandlers.executeHandler(HttpHandlers.java:46)
      	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:26)
      	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:118)
      	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:106)
      	at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:83)
      	at io.undertow.server.HttpHandlers.executeRootHandler(HttpHandlers.java:52)
      	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:544)
      	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:722)
      

        1. jstack.txt
          149 kB
          Jaikiran Pai

              dlloyd@redhat.com David Lloyd
              jaikiran Jaikiran Pai (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: