Support Article
LockObtainFailedException causing issue with Search for Rules
SA-6302
Summary
User was unable to search for Rules and LockObtainFailedException was noticed in PRPC log file.
Error Messages
2015-02-02 05:38:18,579 [ PegaRULES-Batch-3] [ STANDARD] [ ] [ PegaRULES:07.10] ( SystemIndexer.Code_.Action) ERROR - [ Indexer ] The System Indexer encountered an error
com.pega.pegarules.pub.PRRuntimeException: Failed to update the PegaRULES index - Lock obtain timed out: NativeFSLock@/smartpaas-app/tomcat/node1/temp/PegaRULESIndex/RuleIndex/write.lock
at com.pega.pegarules.search.internal.RuleIndexer.updateIndex(RuleIndexer.java:1524)
at com.pega.pegarules.search.internal.RuleIndexer.updateIndex(RuleIndexer.java:1342)
at com.pega.pegarules.session.internal.mgmt.Executable.updateIndex(Executable.java:7284)
at com.pegarules.generated.activity.ra_action_systemindexer_9d55041f93980dcc41b48d1fac00295b.step3_circum0(ra_action_systemindexer_9d55041f93980dcc41b48d1fac00295b.java:420)
at com.pegarules.generated.activity.ra_action_systemindexer_9d55041f93980dcc41b48d1fac00295b.perform(ra_action_systemindexer_9d55041f93980dcc41b48d1fac00295b.java:103)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)
at com.pega.pegarules.session.internal.async.agent.QueueProcessor.runActivity(QueueProcessor.java:719)
at com.pega.pegarules.session.internal.async.agent.QueueProcessor.execute(QueueProcessor.java:600)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:885)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1177)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:926)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:825)
at com.pega.pegarules.session.internal.async.BatchRequestorTask.run(BatchRequestorTask.java:618)
at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:991)
at com.pega.jsr166backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:532)
at java.lang.Thread.run(Thread.java:724)
Caused by: com.pega.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/smartpaas-app/tomcat/node1/temp/PegaRULESIndex/RuleIndex/write.lock
at com.pega.apache.lucene.store.Lock.obtain(Lock.java:85)
at com.pega.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1108)
at com.pega.pegarules.search.internal.RuleIndexer.getOptimizedIndexWriter(RuleIndexer.java:1748)
at com.pega.pegarules.search.internal.RuleIndexer.removeFromIndex(RuleIndexer.java:1597)
at com.pega.pegarules.search.internal.RuleIndexer.updateIndex(RuleIndexer.java:1505)
Steps to Reproduce
Not Applicable
Root Cause
Lucene releases the lock after index has been updated by deleting the .lock file. The behaviour may occur when the .lock file was not deleted from the specified directory for indexing.
Resolution
Delete the Lucene .lock file and manually restart the systemindexer agent.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.