jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "MARTINEZ Antonio" <Antonio.Marti...@alcatel-lucent.com>
Subject RE: Unable to lock global revision table (repository unstable)
Date Thu, 30 Oct 2008 01:17:08 GMT
Any input on this matter is greatly appreciated :)

Thanks,
Antonio

-----Original Message-----
From: MARTINEZ Antonio [mailto:Antonio.Martinez@alcatel-lucent.com] 
Sent: Monday, October 27, 2008 5:47 PM
To: users@jackrabbit.apache.org
Subject: Unable to lock global revision table (repository unstable)

Hello,

I'm using JR-1.4.4.

In a cluster environment with a fairly large database, we sometimes get
a MySql Exception
  "Lock wait timeout exceeded; try restarting transaction"

After getting this exception, it appears that we can add more stuff to
the DB, but then again, every now and then we get the same exception.

MySql command: "show engine innodb status" shows that transaction has
been waiting for 6 secs to get lock on table CLUSTER_GLOBAL_REVISION_IDX

The scary thing is that it seams subsequent queries do not give accurate
information (i.e, query return object that should not return for given
filter), or we get different results for the same query on he same
cluster node.

As the exception indicates, we should restart the transaction, but a
brief look at the code (in AbstractJournal.java) it appears that is not
the case.


Has anyone had the same issue? 

Any suggestion on how to tackle this issue?

Thanks,
Antonio



This is the full exception:
org.apache.jackrabbit.core.journal.JournalException: Unable to lock
global revision table.
        at
org.apache.jackrabbit.core.journal.DatabaseJournal.doLock(DatabaseJourna
l.java:353)
        at
org.apache.jackrabbit.core.journal.AbstractJournal.lockAndSync(AbstractJ
ournal.java:245)
        at
org.apache.jackrabbit.core.journal.DefaultRecordProducer.append(DefaultR
ecordProducer.java:51)
        at
org.apache.jackrabbit.core.cluster.ClusterNode$WorkspaceUpdateChannel.up
dateCreated(ClusterNode.java:561)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(Sha
redItemStateManager.java:532)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(Shar
edItemStateManager.java:843)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedIte
mStateManager.java:873)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemS
tateManager.java:324)
        at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateMa
nager.java:306)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemS
tateManager.java:300)
        at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionI
temStateManager.java:317)
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1247)
        at
org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:897)
        at
org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:17
8)
        at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.setCollectionS
tatus(InventoryNeListServiceImpl.java:243)
        at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.collectionEnd(
InventoryNeListServiceImpl.java:188)
        at
com.alcatel.axs.app.idm.InventoryDiscoveryServiceImpl.doDiscoveryNow(Inv
entoryDiscoveryServiceImpl.java:260)
        at sun.reflect.GeneratedMethodAccessor1535.invoke(Unknown
Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
        at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
        at
javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredMode
lMBean.java:1074)
        at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean
.java:955)
        at
org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.
java:88)
        at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
        at
org.jboss.mx.modelmbean.RequiredModelMBeanInvoker.invoke(RequiredModelMB
eanInvoker.java:127)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
        at
org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:
291)
        at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocati
onHandler.java:288)
        at $Proxy569.doDiscoveryNow(Unknown Source)
        at
com.alcatel.axs.app.idm.InventoryJob.execute(InventoryJob.java:41)
        at
com.alcatel.axs.container.jobmanager.ManagedJob.run(ManagedJob.java:48)
        at
com.alcatel.axs.container.jobmanager.JMSJobExecutor.onMessage(JMSJobExec
utor.java:50)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvo
keListener(AbstractMessageListenerContainer.java:
531)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invoke
Listener(AbstractMessageListenerContainer.java:46
6)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExec
uteListener(AbstractMessageListenerContainer.java
:435)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer
.doReceiveAndExecute(AbstractPollingMessageListen
erContainer.java:322)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer
.receiveAndExecute(AbstractPollingMessageListener
Container.java:260)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMe
ssageListenerInvoker.invokeListener(DefaultMessag
eListenerContainer.java:944)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMe
ssageListenerInvoker.run(DefaultMessageListenerCo
ntainer.java:868)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try
restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
        at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:
1313)
        at
com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:874)
        at
org.apache.jackrabbit.core.journal.DatabaseJournal.doLock(DatabaseJourna
l.java:336)
        ... 44 more


Mime
View raw message