Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.1.1
-
None
-
Java 1.5, Windows
Description
Reached a deadlock inside common-logging while concurrently re-deploying 2 WARs.
In each WAR there is an attempt to get a logger:
private final Log logger = LogFactory.getLog(ContextLoader.class);
Thread dump:
[deadlocked thread] Thread-96:
-----------------------------
Thread 'Thread-96' is waiting to acquire lock 'java.lang.ref.ReferenceQueue@5266e0' that is held by thread 'Thread-102'
Stack trace:
------------
org.apache.commons.logging.impl.WeakHashtable.purge(WeakHashtable.java:323)
org.apache.commons.logging.impl.WeakHashtable.rehash(WeakHashtable.java:312)
java.util.Hashtable.put(Hashtable.java:414)
org.apache.commons.logging.impl.WeakHashtable.put(WeakHashtable.java:242)
org.apache.commons.logging.LogFactory.cacheFactory(LogFactory.java:1004)
org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:657)
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
org.springframework.web.context.ContextLoader.<init>(ContextLoader.java:145)
[deadlocked thread] Thread-102:
------------------------------
Thread 'Thread-102' is waiting to acquire lock 'org.apache.commons.logging.impl.
WeakHashtable@1e02138' that is held by thread 'Thread-96'
Stack trace:
------------
java.util.Hashtable.remove(Hashtable.java:437)
org.apache.commons.logging.impl.WeakHashtable.purgeOne(WeakHashtable.java:338)
org.apache.commons.logging.impl.WeakHashtable.put(WeakHashtable.java:238)
org.apache.commons.logging.LogFactory.cacheFactory(LogFactory.java:1004)
org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:657)
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
org.springframework.web.context.ContextLoader.<init>(ContextLoader.java:145)
Attachments
Attachments
Issue Links
- breaks
-
HADOOP-10147 Upgrade to commons-logging 1.1.3 to avoid potential deadlock in MiniDFSCluster
- Closed