jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From modelrepository <modelreposit...@126.com>
Subject deadlock issue when using mssql2016
Date Thu, 24 Aug 2017 04:25:49 GMT
Hi, all
   Recently, we need to support MSSQL2016. After running some test in one
cluster environment, we meet following dead lock issue. I have two questions
   1. Based on what I know, synchronizing repository doesn't need acquire
write lock, so why deadlock happened
   2. The exception handling looks not good on
SharedItemStateManager.externalUpdate. In my case, some unexpected
exception, i.e. UndeclaredThrowableException, is throw out, that's because
some reflection is used when executing sql.  As this non-ItemStateException
is thrown, SharedItemStateManager will not release the global writer lock,
make repository in this VM not working.

2017-08-18 19:01:00,296 ERROR [org.jboss.as.ejb3.invocation] WFLYEJB0034:
EJB Invocation failed on component ...: javax.ejb.EJBException:
java.lang.reflect.UndeclaredThrowableException
	at
org.jboss.as.ejb3.tx.BMTInterceptor.handleException(BMTInterceptor.java:83)
	at
org.jboss.as.ejb3.tx.EjbBMTInterceptor.checkStatelessDone(EjbBMTInterceptor.java:91)
	at
org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:106)
	at
org.jboss.as.ejb3.tx.BMTInterceptor.processInvocation(BMTInterceptor.java:58)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
	at
org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
	at
org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at
org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:53)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at
org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:634)
	at
org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
	at
org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195)
	at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:331)
	at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$100(MethodInvocationMessageHandler.java:69)
	at
org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:202)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)
	at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy62.next(Unknown Source)
	at
org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1028)
	at
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:654)
	at
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.load(AbstractBundlePersistenceManager.java:400)
	at
org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState(SharedItemStateManager.java:1819)
	at
org.apache.jackrabbit.core.state.SharedItemStateManager.doExternalUpdate(SharedItemStateManager.java:1552)
	at
org.apache.jackrabbit.core.state.SharedItemStateManager.externalUpdate(SharedItemStateManager.java:1504)
	at
org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.externalUpdate(RepositoryImpl.java:2269)
	at
org.apache.jackrabbit.core.cluster.ClusterNode.process(ClusterNode.java:814)
	at
org.apache.jackrabbit.core.cluster.ChangeLogRecord.process(ChangeLogRecord.java:498)
	at
org.apache.jackrabbit.core.cluster.ClusterNode.consume(ClusterNode.java:760)
	at
org.apache.jackrabbit.core.journal.AbstractJournal.doSync(AbstractJournal.java:235)
	at
org.apache.jackrabbit.core.journal.AbstractJournal.internalSync(AbstractJournal.java:209)
	at
org.apache.jackrabbit.core.journal.AbstractJournal.sync(AbstractJournal.java:189)
	at
org.apache.jackrabbit.core.cluster.ClusterNode.sync(ClusterNode.java:308)
	at
org.apache.jackrabbit.core.session.SessionRefreshOperation.perform(SessionRefreshOperation.java:58)
	at
org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
	at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:355)
	at org.apache.jackrabbit.core.SessionImpl.refresh(SessionImpl.java:765)
	at
org.apache.jackrabbit.jca.JCASessionHandle.refresh(JCASessionHandle.java:193)
....
	at
org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
	at
org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
	at
org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
	at
org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
	at
org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
	at
org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:103)
	... 53 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at
org.apache.jackrabbit.core.util.db.ResultSetWrapper.invoke(ResultSetWrapper.java:66)
	... 100 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction
(Process ID 55) was deadlocked on lock resources with another process and
has been chosen as the deadlock victim. Rerun the transaction.
	at
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
	at
com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:4762)
	at
com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1682)
	at
com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:955)
	at
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:169)
	at
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:169)
	... 104 more





--
View this message in context: http://jackrabbit.510166.n4.nabble.com/deadlock-issue-when-using-mssql2016-tp4667553.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Mime
View raw message