Anonymous | Login | Signup for a new account | 12-17-2024 10:57 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0001428 | [Resin] | major | always | 10-30-06 06:49 | 11-01-06 11:14 | ||||
Reporter | mabbott | View Status | public | ||||||
Assigned To | ferg | ||||||||
Priority | normal | Resolution | fixed | Platform | |||||
Status | closed | OS | |||||||
Projection | none | OS Version | |||||||
ETA | none | Fixed in Version | 3.1.0 | Product Version | 3.0.19 | ||||
Product Build | |||||||||
Summary | 0001428: Locking in Jar.create() method blocks application performance | ||||||||
Description |
Our application makes heavy use of JavaMail and most requests must at some point get a JavaMail Session instance. We have found very heavy lock contention (2/3 of all threads) caused by the Resin class loader resource fetch locking in the Jar.create method. A stack dump is below. This is the limiting factor in the application performance. "resin-tcp-connection-*:80-3939" daemon prio=10 tid=0x00bd3fb8 nid=0x24f13 waiting for monitor entry [0xc60fe000..0xc60ffc70] at com.caucho.vfs.Jar.create(Jar.java:124) - waiting to lock <0xd78e6ca8> (a com.caucho.util.LruCache) at com.caucho.vfs.JarPath.getJar(JarPath.java:196) at com.caucho.vfs.JarPath.canRead(JarPath.java:157) at com.caucho.loader.TreeLoader.getPath(TreeLoader.java:312) at com.caucho.loader.Loader.getResourceAsStream(Loader.java:164) at com.caucho.loader.DynamicClassLoader.getResourceAsStream(DynamicClassLoader.java:1397) at com.caucho.loader.DynamicClassLoader.getParentResourceAsStream(DynamicClassLoader.java:1419) at com.caucho.loader.DynamicClassLoader.getResourceAsStream(DynamicClassLoader.java:1386) at com.caucho.loader.DynamicClassLoader.getParentResourceAsStream(DynamicClassLoader.java:1419) at com.caucho.loader.DynamicClassLoader.getResourceAsStream(DynamicClassLoader.java:1386) at java.lang.Class.getResourceAsStream(Class.java:1998) at javax.mail.SecuritySupport12$2.run(SecuritySupport12.java:41) at java.security.AccessController.doPrivileged(Native Method) at javax.mail.SecuritySupport12.getResourceAsStream(SecuritySupport12.java:39) at javax.mail.Session.loadResource(Session.java:1033) at javax.mail.Session.loadProviders(Session.java:871) at javax.mail.Session.<init>(Session.java:191) at javax.mail.Session.getInstance(Session.java:230) |
||||||||
Steps To Reproduce | |||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Notes | |
(0001570) ferg 11-01-06 11:14 |
Shifted synchronization to use putIfNew to remove lock dependency on the removeEvent |
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed. 26 unique queries executed. |