Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-5599

Deadlock exception when purging string based JDBC Store

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      I'm seeing the following expectation periodically when purging my Infinispan cache using the JDBC string based cache store:

      12:45:20,752 WARN  [org.infinispan.persistence.manager.PersistenceManagerImpl] (expiration-thread--p2-t1) ISPN000026: Caught exception purging data container!: org.infinispan.persistence.spi.PersistenceException: java.util.concurrent.ExecutionException: org.infinispan.persistence.spi.PersistenceException: Failed clearing string based JDBC store
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.purge(JdbcStringBasedStore.java:302) [infinispan-cachestore-jdbc.jar:7.2.0.Final]
      	at org.infinispan.persistence.manager.PersistenceManagerImpl.purgeExpired(PersistenceManagerImpl.java:342) [infinispan-core.jar:7.2.0.Final]
      	at org.infinispan.expiration.impl.ExpirationManagerImpl.processExpiration(ExpirationManagerImpl.java:101) [infinispan-core.jar:7.2.0.Final]
      	at org.infinispan.expiration.impl.ExpirationManagerImpl$ScheduledTask.run(ExpirationManagerImpl.java:122) [infinispan-core.jar:7.2.0.Final]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_40]
      	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [rt.jar:1.8.0_40]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.8.0_40]
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [rt.jar:1.8.0_40]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_40]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
      Caused by: java.util.concurrent.ExecutionException: org.infinispan.persistence.spi.PersistenceException: Failed clearing string based JDBC store
      	at java.util.concurrent.FutureTask.report(FutureTask.java:122) [rt.jar:1.8.0_40]
      	at java.util.concurrent.FutureTask.get(FutureTask.java:192) [rt.jar:1.8.0_40]
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore.purge(JdbcStringBasedStore.java:297) [infinispan-cachestore-jdbc.jar:7.2.0.Final]
      	... 10 more
      Caused by: org.infinispan.persistence.spi.PersistenceException: Failed clearing string based JDBC store
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore$1.call(JdbcStringBasedStore.java:288) [infinispan-cachestore-jdbc.jar:7.2.0.Final]
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore$1.call(JdbcStringBasedStore.java:272) [infinispan-cachestore-jdbc.jar:7.2.0.Final]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_40]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_40]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_40]
      	... 3 more
      Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.8.0_40]
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [rt.jar:1.8.0_40]
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.8.0_40]
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:422) [rt.jar:1.8.0_40]
      	at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
      	at com.mysql.jdbc.Util.getInstance(Util.java:383)
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
      	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4208)
      	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4140)
      	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2597)
      	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2758)
      	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2826)
      	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
      	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)
      	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)
      	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2246)
      	at com.mysql.jdbc.jdbc2.optional.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:873)
      	at org.jboss.jca.adapters.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:119)
      	at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:493)
      	at org.infinispan.persistence.jdbc.stringbased.JdbcStringBasedStore$1.call(JdbcStringBasedStore.java:282) [infinispan-cachestore-jdbc.jar:7.2.0.Final]
      	... 7 more
      

      My cache configuration is:

      <cache-container default-cache="repo" statistics="false">
      	<transport cluster="modeshape-cluster" stack="tcp"/>
      	<jmx duplicate-domains="true"/>
      	<replicated-cache name="repo" mode="SYNC">
      		<locking striping="false" isolation="READ_COMMITTED"/>
      		<transaction mode="NON_DURABLE_XA" locking="PESSIMISTIC"/>
      		<persistence passivation="false">
      			<string-keyed-jdbc-store xmlns="urn:infinispan:config:store:jdbc:7.0" fetch-state="false" read-only="false" purge="true" shared="true">
      				<data-source jndi-url="java:jboss/datasources/ds"/>
      				<string-keyed-table prefix="modeshape" create-on-start="true" drop-on-exit="false">
      					<id-column name="id" type="VARCHAR(200)"/>
      					<data-column name="datum" type="LONGBLOB"/>
      					<timestamp-column name="version" type="BIGINT"/>
      				</string-keyed-table>
      			</string-keyed-jdbc-store>
      		</persistence>
      	</replicated-cache>
      </cache-container>
      

              Unassigned Unassigned
              ma6rl_jira Richard Lucas (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: