Bugs item #674432, was opened at 2003-01-24 18:56 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=674432&group_id=22866
Category: JBossMX Group: v3.0 Rabbit Hole Status: Open Resolution: Accepted Priority: 5 Submitted By: Stefan Reich (sreich) Assigned to: Scott M Stark (starksm) Summary: lock starvation with Ecperf Initial Comment: I ran Ecperf on JDK 1.4.1 on MacOSX with CMP deployment on Jboss 3.0.6 latest from today. The test stopped after a while. I was only able to reproduce it once so far, with the -Xint flag. I got one thread with the following trace: "RMI TCP Connection(127)-17.205.41.241" daemon prio=5 tid=0x04b88490 nid=0x4b23c70 in Object.wait() [f98ac000..f98b0b70] at java.lang.Object.wait(Native Method) - waiting on <0x5d3996f0> (a org.jboss.mx.loading.ClassLoadingTask) at java.lang.Object.wait(Object.java:426) at org.jboss.mx.loading.LoadMgr.nextTask(LoadMgr.java:229) - locked <0x5d3996f0> (a org.jboss.mx.loading.ClassLoadingTask) at org.jboss.mx.loading.UnifiedClassLoader3.loadClass(UnifiedClassLoader3.java:165) - locked <0x5aa54640> (a org.jboss.mx.loading.UnifiedClassLoader3) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) - locked <0x5aa54640> (a org.jboss.mx.loading.UnifiedClassLoader3) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at com.sun.ecperf.ruleengine.CachedClass.<init>(CachedClass.java:44) at com.sun.ecperf.ruleengine.ClassCache.forName(ClassCache.java:61) at com.sun.ecperf.ruleengine.RuleProcessor.firstIdentifier(RuleProcessor.java:5487) at com.sun.ecperf.ruleengine.RuleProcessor.evalName(RuleProcessor.java:5682) Another thread waiting on the first thread had the lock to class loader instance 0x5aa54640: "RMI TCP Connection(203)-17.205.41.241" daemon prio=5 tid=0x04bc4ad0 nid=0x4b2fdc0 waiting for monitor entry [fbefb000..fbefcb70] at org.jboss.mx.loading.UnifiedClassLoader3.loadClass(UnifiedClassLoader3.java:120) - waiting to lock <0x5aa54640> (a org.jboss.mx.loading.UnifiedClassLoader3) at java.lang.ClassLoader.loadClass(ClassLoader.java:292) - locked <0x5ac4ce88> (a org.jboss.web.WebClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:292) - locked <0x5ac4a248> (a java.net.URLClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:37) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513) All other threads were blocked waiting on the lock for the classloader 0x5ac4a248: "RMI TCP Connection(128)-17.205.41.241" daemon prio=5 tid=0x04b89010 nid=0x4b23ed0 waiting for monitor entry [f9930000..f9931b70] at java.lang.ClassLoader.loadClass(ClassLoader.java:288) - waiting to lock <0x5aa5c288> (a java.net.URLClassLoader) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:37) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at org.jboss.invocation.MarshalledValue.get(MarshalledValue.java:78) I have a 50MB log about the class loading details. The only noteworthy event in the last entries in the log file was this exception: [856915,LoadMgr,RMI TCP Connection(127)-17.205.41.241] nextTask(WAIT_ON_EVENT), interrupted java.lang.InterruptedException at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:426) at org.jboss.mx.loading.LoadMgr.nextTask(LoadMgr.java:229) at org.jboss.mx.loading.UnifiedClassLoader3.loadClass(UnifiedClassLoader3.java:165) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) ---------------------------------------------------------------------- >Comment By: Stefan Reich (sreich) Date: 2003-01-27 18:40 Message: Logged In: YES user_id=429729 Log file sent to Scott. The problem is fairly reproducable on my Dual 500 PowerMac with JDK 1.4.1 if you run the VM with -Xint. ---------------------------------------------------------------------- Comment By: Scott M Stark (starksm) Date: 2003-01-25 00:27 Message: Logged In: YES user_id=175228 The RMI threads waiting on the class loader are just byproducts of the load notify that is causing the RMI TCP Connection(127)-17.205.41.241 to hang. Zip up the log file and send it to [EMAIL PROTECTED] as I need to look into what thread should have sent the notification. Its probably a bad thing to ignore the InterruptedException so this has been changed to abort the loadClass call. Please retry this this change. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=674432&group_id=22866 ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development