You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Hudson (Commented) (JIRA)" <ji...@apache.org> on 2011/10/07 21:46:29 UTC
[jira] [Commented] (TAP5-1650) On a cold start with a large number
of incoming requests, Tapestry can deadlock inside
PlasticClassLoader/PlasticClassPool
[ https://issues.apache.org/jira/browse/TAP5-1650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13123116#comment-13123116 ]
Hudson commented on TAP5-1650:
------------------------------
Integrated in tapestry-trunk-freestyle #563 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/563/])
TAP5-1650: Change the service/object reloader to use Plastic, not Javassist
TAP5-1650: Apply patch to minimize (but not fully remove) class-loader related deadlocks
hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1180147
Files :
* /tapestry/tapestry5/trunk/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassLoader.java
* /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1180143
Files :
* /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
> On a cold start with a large number of incoming requests, Tapestry can deadlock inside PlasticClassLoader/PlasticClassPool
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-1650
> URL: https://issues.apache.org/jira/browse/TAP5-1650
> Project: Tapestry 5
> Issue Type: Bug
> Components: plastic
> Affects Versions: 5.3
> Reporter: Howard M. Lewis Ship
> Assignee: Howard M. Lewis Ship
> Priority: Critical
> Labels: deadlock, performance
> Attachments: tapestry-deadlock-fix-1.patch
>
>
> Discovered during load testing; the scenario is a cold start for the application then hitting it with large numbers of concurrent requests with no ramp up. The deadlocks involve two methods:
> PlasticClassLoader.loadClass()
> PlasticClassPool.getClassInstantiator()
> A proper solution would to make these methods share a single explicit Lock, rather than be synchronized.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira