Hi all,
I've been testing JBoss Rules 3.0.4 in a multi threaded application and
often when I put some load on the system all threads hang and the CPU
sits at 100%.
I'm using Java 1.5_09 on Linux. The app uses 5 simultaneous threads at
the moment. They never share WorkingMemory instances but do share the
same RuleBase.
A thread dump (see below) shows all threads being stuck in
java.util.WeakHashMap, which is called from
AbstractRuleBase.addWorkingMemory.
Has anyone seen this before? I attempted to synchronize the method
that's the entry point to newWorkingMemory(). That definitely made the
problem happen less often but didn't solve it completely. Anyone knows
any other workarounds?
Thanks,
Per
"CW4" prio=1 tid=0x1a4fd7a8 nid=0xc44 runnable [0x1a2fe000..0x1a2fefb0]
at
java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:289)
at java.util.WeakHashMap.getTable(WeakHashMap.java:297)
at java.util.WeakHashMap.put(WeakHashMap.java:394)
at org.drools.common.AbstractRuleBase.addWorkingMemory(Unknown
Source)
at org.drools.reteoo.ReteooRuleBase.newWorkingMemory(Unknown
Source)
at org.drools.common.AbstractRuleBase.newWorkingMemory(Unknown
Source)
"CW3" prio=1 tid=0x1a4fd5f0 nid=0xc43 runnable [0x1a6fe000..0x1a6fee30]
at java.util.WeakHashMap.put(WeakHashMap.java:397)
at org.drools.common.AbstractRuleBase.addWorkingMemory(Unknown
Source)
at org.drools.reteoo.ReteooRuleBase.newWorkingMemory(Unknown
Source)
at org.drools.common.AbstractRuleBase.newWorkingMemory(Unknown
Source)
"CW2" prio=1 tid=0x1a4fd100 nid=0xc42 runnable [0x1a8e5000..0x1a8e5eb0]
at
java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:289)
at java.util.WeakHashMap.getTable(WeakHashMap.java:297)
at java.util.WeakHashMap.put(WeakHashMap.java:394)
at org.drools.common.AbstractRuleBase.addWorkingMemory(Unknown
Source)
at org.drools.reteoo.ReteooRuleBase.newWorkingMemory(Unknown
Source)
at org.drools.common.AbstractRuleBase.newWorkingMemory(Unknown
Source)
"CW1" prio=1 tid=0x19afca78 nid=0xc41 runnable [0x1a966000..0x1a967130]
at
java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:289)
at java.util.WeakHashMap.getTable(WeakHashMap.java:297)
at java.util.WeakHashMap.put(WeakHashMap.java:394)
at org.drools.common.AbstractRuleBase.addWorkingMemory(Unknown
Source)
at org.drools.reteoo.ReteooRuleBase.newWorkingMemory(Unknown
Source)
at org.drools.common.AbstractRuleBase.newWorkingMemory(Unknown
Source)
at
"CW0" prio=1 tid=0x19afc7d8 nid=0xc40 runnable [0x1aafe000..0x1aaff1b0]
at
java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:289)
at java.util.WeakHashMap.getTable(WeakHashMap.java:297)
at java.util.WeakHashMap.put(WeakHashMap.java:394)
at org.drools.common.AbstractRuleBase.addWorkingMemory(Unknown
Source)
at org.drools.reteoo.ReteooRuleBase.newWorkingMemory(Unknown
Source)
at org.drools.common.AbstractRuleBase.newWorkingMemory(Unknown
Source)
at
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email