Hi, Do you have a Testcase to rebuild the problem ? Please feel free to file a jira issue.
greets claus -----Ursprüngliche Nachricht----- Von: Shailesh Mangal [mailto:[email protected]] Gesendet: Donnerstag, 15. Juli 2010 21:01 An: [email protected] Betreff: Blocked thread in JackRabbit version 1.6.2 Hi, When we have multiple threads trying to access data from under same node and few thread writing to other nodes under the same parent nodes, we seem to run into deadlocks. Profiler reports one thread blocked and others in wait state. Here is the stack trace of the blocked thread. Wondering if this indicates a issue in our code or in jackrabbit. We are not using search and have disabled search managers (hence, probably this bug is not relevant). JackRabbit Version: 1.6.2 Stacks at 5:35:12 http-8081-Processor25 [BLOCKED] CPU time: 0:09 org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(ItemId) org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(ItemId) org.apache.jackrabbit.core.ItemManager.getItemData(ItemId, Path, boolean) org.apache.jackrabbit.core.ItemManager.getItem(ItemId, Path) org.apache.jackrabbit.core.ItemManager.getItem(ItemId) org.apache.jackrabbit.core.lock.LockManagerImpl.refresh(PathMap$Element) org.apache.jackrabbit.core.lock.LockManagerImpl.nodeAdded(Path) org.apache.jackrabbit.core.lock.LockManagerImpl.onEvent(EventIterator) org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventStateCollection) org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(EventStateCollection) org.apache.jackrabbit.core.observation.EventStateCollection.dispatch() org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end() org.apache.jackrabbit.core.state.SharedItemStateManager.update(ChangeLog, EventStateCollectionFactory) org.apache.jackrabbit.core.state.LocalItemStateManager.update(ChangeLog) org.apache.jackrabbit.core.state.XAItemStateManager.update(ChangeLog) org.apache.jackrabbit.core.state.LocalItemStateManager.update() org.apache.jackrabbit.core.BatchedItemOperations.update() org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(String, WorkspaceImpl, String, int) org.apache.jackrabbit.core.WorkspaceImpl.copy(String, String) com.thed.repository.TestcaseContentsManager.copyTestCases(Long, Long, Map) sun.reflect.GeneratedMethodAccessor356.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.transaction.interceptor.TransactionInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) $Proxy53.copyNodes(Long, Long, Map) sun.reflect.GeneratedMethodAccessor356.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() com.thed.util.MethodCallInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) $Proxy54.copyNodes(Long, Long, Map) sun.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() com.thed.util.MethodCallInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) $Proxy54.copyNodes(Long, Long, Map) ... org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.transaction.interceptor.TransactionInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) ... sun.reflect.GeneratedMethodAccessor355.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() com.thed.util.MethodCallInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) ... sun.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() ... org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Object, Method, Object[]) $Proxy98.copyTCRCatalogTree(Long, Long, Long, Long, Long) com.thed.server.remote.CatalogUtilService.copyTCRCatalogTree(Long, Long, Long, Long, Long) com.thed.server.remote.CatalogUtilService$$FastClassByCGLIB$$d73025.invoke(int, Object, Object[]) net.sf.cglib.proxy.MethodProxy.invoke(Object, Object[]) org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint() org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() com.thed.util.MethodCallInterceptor.invoke(MethodInvocation) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed() org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Object, Method, Object[], MethodProxy) ... sun.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) java.lang.reflect.Method.invoke(Object, Object[]) flex.messaging.services.remoting.adapters.JavaAdapter.invoke(Message) flex.messaging.services.RemotingService.serviceMessage(Message) flex.messaging.MessageBroker.routeMessageToService(Message, Endpoint) flex.messaging.endpoints.AbstractEndpoint.serviceMessage(Message) flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(ActionContext) flex.messaging.endpoints.amf.LegacyFilter.invoke(ActionContext) flex.messaging.endpoints.amf.SessionFilter.invoke(ActionContext) flex.messaging.endpoints.amf.BatchProcessFilter.invoke(ActionContext) flex.messaging.endpoints.amf.SerializationFilter.invoke(ActionContext) flex.messaging.endpoints.BaseHTTPEndpoint.service(HttpServletRequest, HttpServletResponse) flex.messaging.MessageBrokerServlet.service(HttpServletRequest, HttpServletResponse) javax.servlet.http.HttpServlet.service(ServletRequest, ServletResponse) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) org.apache.catalina.core.ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain) com.thed.util.spring.RefreshableOpenSessionInViewFilter.doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain) org.springframework.web.filter.OncePerRequestFilter.doFilter(ServletRequest, ServletResponse, FilterChain) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) org.apache.catalina.core.ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain) org.springframework.web.filter.OncePerRequestFilter.doFilter(ServletRequest, ServletResponse, FilterChain) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) org.apache.catalina.core.ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) org.apache.catalina.core.StandardWrapperValve.invoke(Request, Response) org.apache.catalina.core.StandardContextValve.invoke(Request, Response) org.apache.catalina.core.StandardHostValve.invoke(Request, Response) org.apache.catalina.valves.ErrorReportValve.invoke(Request, Response) org.apache.catalina.core.StandardEngineValve.invoke(Request, Response) org.apache.catalina.connector.CoyoteAdapter.service(Request, Response) org.apache.coyote.http11.Http11Processor.process(InputStream, OutputStream) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Object[]) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() java.lang.Thread.run() - Shailesh
