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: [email protected]
ReportedBy: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]