https://issues.apache.org/bugzilla/show_bug.cgi?id=50078

           Summary: Concurrent access to WeakHashMap in ConcurrentCache
                    causes infinite loop, 100% CPU usage
           Product: Tomcat 6
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: takayo...@gmail.com


Created an attachment (id=26163)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=26163)
Proposed patch for tc6 trunk

There is a WeakHashMap instance that is accessed concurrently and sometimes
causes infinite loop. It's extremely hard to reproduce but you can refer to
similar concurrent access looping problem by the following search keywords:

* weakhashmap infinite loop 100% cpu stuck synchronized concurrent
* java.util.WeakHashMap.put(WeakHashMap.java:405)
* java.util.WeakHashMap.get(WeakHashMap.java:355)

The org.apache.el.util.ConcurrentCache and
javax.el.BeanELResolver.ConcurrentCache classes have this problem.

There are 20 threads get stuck at the following thread stack:

"ajp-146.215.106.42-8009-38" daemon prio=10 tid=0x00002aab6425d800 nid=0x135b
runnable [0x0000000048c14000]
   java.lang.Thread.State: RUNNABLE
    at java.util.WeakHashMap.get(WeakHashMap.java:355)
    at org.apache.el.util.ConcurrentCache.get(ConcurrentCache.java:24)
    at
org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:90)

"ajp-146.215.106.42-8009-18" daemon prio=10 tid=0x00002aab643ea000 nid=0x538d
runnable [0x00000000458fd000]
   java.lang.Thread.State: RUNNABLE
    at java.util.WeakHashMap.put(WeakHashMap.java:405)
    at java.util.WeakHashMap.putAll(WeakHashMap.java:518)
    at org.apache.el.util.ConcurrentCache.put(ConcurrentCache.java:34)

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to