]
Sanne Grinovero commented on ISPN-1154:
---------------------------------------
I just realized that while this is a performance issue, it's not affecting
functionality: Lucene indexes should be stored and evicted as by configuration. the logged
error is about not being able to lock the entry, but in this specific case locking is
unneeded and my patch is actually going to remove the locking attempt.
Batching or Transactions not compatible with Eviction
-----------------------------------------------------
Key: ISPN-1154
URL:
https://issues.jboss.org/browse/ISPN-1154
Project: Infinispan
Issue Type: Bug
Components: Core API, Lucene Directory
Affects Versions: 4.2.1.FINAL, 5.0.0.CR4
Reporter: Sanne Grinovero
Assignee: Sanne Grinovero
Fix For: 5.0.0.CR5, 5.0.0.FINAL
When enabling eviction on the data cache for the Lucene Directory in Hibernate Search,
you can get {quote}17:17:40,913 (Hibernate Search: Directory writer-1) WARN
EvictionManagerImpl:172 - ISPN00027: Could not acquire lock for eviction of
_2.tii|0|emails
java.lang.IllegalStateException: Transaction DummyTransaction{xid=DummyXid{,
globalTransactionId = ByteArray{size=64, array=[-40, -40, -101, 54, -23, -22, 68, -110,
-34, -5, ..]}, branchQualifier = ByteArray{size=64, array=[-44, -86, 55, 114, -66, 70,
123, 104, -38, -14, ..]}}, status=8} appears to no longer be valid!
at
org.infinispan.util.concurrent.locks.LockManagerImpl.lockAndRecord(LockManagerImpl.java:95)
at
org.infinispan.eviction.EvictionManagerImpl.acquireLock(EvictionManagerImpl.java:210)
at
org.infinispan.eviction.EvictionManagerImpl.onEntryEviction(EvictionManagerImpl.java:170)
at
org.infinispan.eviction.EvictionManagerImpl.onEntryEviction(EvictionManagerImpl.java:162)
at
org.infinispan.container.DefaultDataContainer$DefaultEvictionListener.onEntryEviction(DefaultDataContainer.java:201)
at
org.infinispan.util.concurrent.BoundedConcurrentHashMap$Segment.notifyEvictionListener(BoundedConcurrentHashMap.java:1176)
at
org.infinispan.util.concurrent.BoundedConcurrentHashMap$Segment.put(BoundedConcurrentHashMap.java:1011)
at
org.infinispan.util.concurrent.BoundedConcurrentHashMap.put(BoundedConcurrentHashMap.java:1556)
at org.infinispan.container.DefaultDataContainer.put(DefaultDataContainer.java:148)
at
org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:177)
at
org.infinispan.interceptors.LockingInterceptor.commitEntry(LockingInterceptor.java:389)
at
org.infinispan.interceptors.LockingInterceptor.cleanupLocks(LockingInterceptor.java:367)
at
org.infinispan.interceptors.LockingInterceptor.visitCommitCommand(LockingInterceptor.java:98)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.CacheStoreInterceptor.visitCommitCommand(CacheStoreInterceptor.java:146)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133)
at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:116)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.NotificationInterceptor.visitCommitCommand(NotificationInterceptor.java:56)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at org.infinispan.interceptors.TxInterceptor.visitCommitCommand(TxInterceptor.java:142)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133)
at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:116)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:96)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:63)
at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:116)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119)
at
org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:77)
at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:116)
at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:274)
at
org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:136)
at
org.infinispan.transaction.xa.TransactionXaAdapter.commit(TransactionXaAdapter.java:124)
at
org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:312)
at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:99)
at
org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:97)
at org.infinispan.batch.BatchContainer.resolveTransaction(BatchContainer.java:131)
at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:108)
at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:93)
at org.infinispan.CacheDelegate.endBatch(CacheDelegate.java:436)
at org.infinispan.lucene.InfinispanIndexOutput.close(InfinispanIndexOutput.java:208)
at org.apache.lucene.index.FieldInfos.write(FieldInfos.java:315)
at org.apache.lucene.index.DocFieldProcessor.flush(DocFieldProcessor.java:66)
at org.apache.lucene.index.DocumentsWriter.flush(DocumentsWriter.java:552)
at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3331)
at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3296)
at org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:3159)
at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3232)
at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3214)
at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3198)
at org.hibernate.search.backend.Workspace.commitIndexWriter(Workspace.java:208)
at
org.hibernate.search.backend.impl.lucene.PerDPQueueProcessor.run(PerDPQueueProcessor.java:106)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{quote}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: