Mantis Bugtracker
  

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

- Relationships

- Notes
(0001570)
ferg
11-01-06 11:14

Shifted synchronization to use putIfNew to remove lock dependency on the removeEvent
 

- Issue History
Date Modified Username Field Change
10-30-06 06:49 mabbott New Issue
11-01-06 11:14 ferg Note Added: 0001570
11-01-06 11:14 ferg Assigned To  => ferg
11-01-06 11:14 ferg Status new => closed
11-01-06 11:14 ferg Resolution open => fixed
11-01-06 11:14 ferg Fixed in Version  => 3.1.0


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker