[jira] Created: (SLING-943) deadlock when a single thread is adding users
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
[ 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)