Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001428 [Resin] major always 10-01-06 06:49 11-01-06 11:14
Reporter mabbott View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version 3.0.19
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)
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-01-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