[jira] Created: (SLING-943) deadlock when a single thread is adding users

2009-04-25 Thread Ian Boston (JIRA)
deadlock when a single thread is adding users
-

 Key: SLING-943
 URL: https://issues.apache.org/jira/browse/SLING-943
 Project: Sling
  Issue Type: Bug
Affects Versions: Launchpad App 4, Servlets Get 2.0.4, JCR Jackrabbit 
Server 2.0.4
 Environment: Sling Trunk at r768397 with 1 patch SLING-940, OSX 10.5, 
JDK 1.5, JMX, and Debug ports open. 
Reporter: Ian Boston


I have a script that tests adding users. 
When running this as a single thread, after about 7K users, Sling stops dead 
with the following deadlock.
I have previously done runs adding 12K users.

Will try and investigate, still have the JVM up with profiler connected



Stack traces of all running threads


11655...@qtp-12248553-1 - Acceptor0 ajp13socketconnec...@0.0.0.0:8009 [RUNNABLE]
java.net.PlainSocketImpl.socketAccept(native method)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
java.net.ServerSocket.implAccept(ServerSocket.java:450)
java.net.ServerSocket.accept(ServerSocket.java:421)
org.mortbay.jetty.bio.SocketConnector.accept(SocketConnector.java:99)
org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:707)
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)


127.0.0.1 [1240657176563] POST /system/userManager/user.create.html HTTP/1.1 
[WAITING]
java.lang.Object.wait(native method)
java.lang.Object.wait(Object.java:474)
EDU.oswego.cs.dl.util.concurrent.SynchronousChannel.put(unknown source)
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$WaitWhenBlocked.blockedAction(unknown
 source)
EDU.oswego.cs.dl.util.concurrent.PooledExecutor.execute(unknown source)
org.apache.jackrabbit.core.query.lucene.DynamicPooledExecutor.executeAndWait(DynamicPooledExecutor.java:114)
org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:195)
org.apache.jackrabbit.core.query.lucene.VolatileIndex.commitPending(VolatileIndex.java:162)
org.apache.jackrabbit.core.query.lucene.VolatileIndex.getIndexReader(VolatileIndex.java:129)
org.apache.jackrabbit.core.query.lucene.AbstractIndex.getReadOnlyIndexReader(AbstractIndex.java:265)
org.apache.jackrabbit.core.query.lucene.MultiIndex.getIndexReader(MultiIndex.java:721)
org.apache.jackrabbit.core.query.lucene.SearchIndex.getIndexReader(SearchIndex.java:862)
org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchIndex.java:702)
org.apache.jackrabbit.core.query.lucene.QueryResultImpl.executeQuery(QueryResultImpl.java:242)
org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(QueryResultImpl.java:292)
org.apache.jackrabbit.core.query.lucene.QueryResultImpl.init(QueryResultImpl.java:191)
org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:130)
org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:177)
org.apache.jackrabbit.core.security.user.IndexNodeResolver.findNode(IndexNodeResolver.java:63)
org.apache.jackrabbit.core.security.user.UserManagerImpl.getUserNode(UserManagerImpl.java:401)
org.apache.jackrabbit.core.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:96)
org.apache.sling.jackrabbit.usermanager.resource.AuthorizableResourceProvider.getResource(AuthorizableResourceProvider.java:107)
org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:376)
org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:367)
org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:122)
org.apache.sling.jcr.resource.internal.JcrResourceResolver2.getResourceInternal(JcrResourceResolver2.java:686)
org.apache.sling.jcr.resource.internal.JcrResourceResolver2.resolveInternal(JcrResourceResolver2.java:580)
org.apache.sling.jcr.resource.internal.JcrResourceResolver2.map(JcrResourceResolver2.java:276)
org.apache.sling.jcr.resource.internal.JcrResourceResolver2.map(JcrResourceResolver2.java:247)
org.apache.sling.jackrabbit.usermanager.post.AbstractAuthorizablePostServlet.externalizePath(AbstractAuthorizablePostServlet.java:682)
org.apache.sling.jackrabbit.usermanager.post.CreateUserServlet.handleOperation(CreateUserServlet.java:177)
org.apache.sling.jackrabbit.usermanager.post.AbstractAuthorizablePostServlet.doPost(AbstractAuthorizablePostServlet.java:140)
org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:143)
org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:338)
org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:369)
org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:520)
org.apache.sling.engine.impl.SlingMainServlet.processRequest(SlingMainServlet.java:409)
org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)

[jira] Commented: (SLING-943) deadlock when a single thread is adding users

2009-04-25 Thread Ian Boston (JIRA)

[ 
https://issues.apache.org/jira/browse/SLING-943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12702679#action_12702679
 ] 

Ian Boston commented on SLING-943:
--

I have memory and thread snapshots stored on disk, too big to upload ( and 
probably not that interesting)

 deadlock when a single thread is adding users
 -

 Key: SLING-943
 URL: https://issues.apache.org/jira/browse/SLING-943
 Project: Sling
  Issue Type: Bug
Affects Versions: Launchpad App 4, Servlets Get 2.0.4, JCR Jackrabbit 
 Server 2.0.4
 Environment: Sling Trunk at r768397 with 1 patch SLING-940, OSX 10.5, 
 JDK 1.5, JMX, and Debug ports open. 
Reporter: Ian Boston

 I have a script that tests adding users. 
 When running this as a single thread, after about 7K users, Sling stops dead 
 with the following deadlock.
 I have previously done runs adding 12K users.
 Will try and investigate, still have the JVM up with profiler connected
 Stack traces of all running threads
 11655...@qtp-12248553-1 - Acceptor0 ajp13socketconnec...@0.0.0.0:8009 
 [RUNNABLE]
 java.net.PlainSocketImpl.socketAccept(native method)
 java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
 java.net.ServerSocket.implAccept(ServerSocket.java:450)
 java.net.ServerSocket.accept(ServerSocket.java:421)
 org.mortbay.jetty.bio.SocketConnector.accept(SocketConnector.java:99)
 org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:707)
 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
 127.0.0.1 [1240657176563] POST /system/userManager/user.create.html HTTP/1.1 
 [WAITING]
 java.lang.Object.wait(native method)
 java.lang.Object.wait(Object.java:474)
 EDU.oswego.cs.dl.util.concurrent.SynchronousChannel.put(unknown source)
 EDU.oswego.cs.dl.util.concurrent.PooledExecutor$WaitWhenBlocked.blockedAction(unknown
  source)
 EDU.oswego.cs.dl.util.concurrent.PooledExecutor.execute(unknown source)
 org.apache.jackrabbit.core.query.lucene.DynamicPooledExecutor.executeAndWait(DynamicPooledExecutor.java:114)
 org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:195)
 org.apache.jackrabbit.core.query.lucene.VolatileIndex.commitPending(VolatileIndex.java:162)
 org.apache.jackrabbit.core.query.lucene.VolatileIndex.getIndexReader(VolatileIndex.java:129)
 org.apache.jackrabbit.core.query.lucene.AbstractIndex.getReadOnlyIndexReader(AbstractIndex.java:265)
 org.apache.jackrabbit.core.query.lucene.MultiIndex.getIndexReader(MultiIndex.java:721)
 org.apache.jackrabbit.core.query.lucene.SearchIndex.getIndexReader(SearchIndex.java:862)
 org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchIndex.java:702)
 org.apache.jackrabbit.core.query.lucene.QueryResultImpl.executeQuery(QueryResultImpl.java:242)
 org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(QueryResultImpl.java:292)
 org.apache.jackrabbit.core.query.lucene.QueryResultImpl.init(QueryResultImpl.java:191)
 org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:130)
 org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:177)
 org.apache.jackrabbit.core.security.user.IndexNodeResolver.findNode(IndexNodeResolver.java:63)
 org.apache.jackrabbit.core.security.user.UserManagerImpl.getUserNode(UserManagerImpl.java:401)
 org.apache.jackrabbit.core.security.user.UserManagerImpl.getAuthorizable(UserManagerImpl.java:96)
 org.apache.sling.jackrabbit.usermanager.resource.AuthorizableResourceProvider.getResource(AuthorizableResourceProvider.java:107)
 org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:376)
 org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:367)
 org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:122)
 org.apache.sling.jcr.resource.internal.JcrResourceResolver2.getResourceInternal(JcrResourceResolver2.java:686)
 org.apache.sling.jcr.resource.internal.JcrResourceResolver2.resolveInternal(JcrResourceResolver2.java:580)
 org.apache.sling.jcr.resource.internal.JcrResourceResolver2.map(JcrResourceResolver2.java:276)
 org.apache.sling.jcr.resource.internal.JcrResourceResolver2.map(JcrResourceResolver2.java:247)
 org.apache.sling.jackrabbit.usermanager.post.AbstractAuthorizablePostServlet.externalizePath(AbstractAuthorizablePostServlet.java:682)
 org.apache.sling.jackrabbit.usermanager.post.CreateUserServlet.handleOperation(CreateUserServlet.java:177)
 org.apache.sling.jackrabbit.usermanager.post.AbstractAuthorizablePostServlet.doPost(AbstractAuthorizablePostServlet.java:140)
 org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:143)