Unable to start Confluence or enable the Usage Stats plugin due to 'Cannot forcefully unlock a NativeFSLock' error
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
Confluence fails to start and the following (or similar) appears in the atlassian-confluence.log
:
2020-04-02 02:06:18,396 ERROR [localhost-startStop-1] [springframework.web.context.ContextLoader] initWebApplicationContext Context initialization failed
...
Caused by: org.apache.lucene.store.LockReleaseFailedException: Cannot forcefully unlock a NativeFSLock which is held by another indexer component: D:\Confluence\Confluence_Home\index\write.lock
Alternatively, Confluence does start up, but the Usage Stats plugin cannot be enabled. This results in missing 'Popular Content' or missing 'Usage Stats' macro, and the following (or similar) stack trace on the logs:
2014-12-08 11:55:26,116 ERROR [localhost-startStop-1] [atlassian.plugin.manager.DefaultPluginManager] enableConfiguredPluginModule There was an error loading the descriptor 'Usage Index Manager' of plugin 'com.atlassian.confluence.ext.usage'. Disabling.
com.atlassian.bonnie.LuceneException: org.apache.lucene.store.LockReleaseFailedException: Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /var/local/confluencedata/index/plugin/usage/write.lock
at com.atlassian.bonnie.LuceneConnection.<init>(LuceneConnection.java:112)
at com.atlassian.bonnie.LuceneConnection.<init>(LuceneConnection.java:120)
at com.atlassian.bonnie.LuceneConnection.<init>(LuceneConnection.java:135)
at com.atlassian.bonnie.LuceneConnection.<init>(LuceneConnection.java:140)
at com.atlassian.confluence.ext.usage.index.UsageIndexManager.enabled(UsageIndexManager.java:90)
at com.atlassian.confluence.plugin.descriptor.ComponentModuleDescriptor.enabled(ComponentModuleDescriptor.java:84)
at com.atlassian.plugin.manager.DefaultPluginManager.notifyModuleEnabled(DefaultPluginManager.java:1955)
at com.atlassian.plugin.manager.DefaultPluginManager.enableConfiguredPluginModule(DefaultPluginManager.java:1747)
at com.atlassian.plugin.manager.DefaultPluginManager.enableConfiguredPluginModules(DefaultPluginManager.java:1714)
at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:1111)
at com.atlassian.plugin.manager.DefaultPluginManager.lateStartup(DefaultPluginManager.java:483)
at com.atlassian.confluence.plugin.ConfluencePluginManager.lateStartup(ConfluencePluginManager.java:136)
at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:350)
at com.atlassian.confluence.plugin.PluginFrameworkContextListener.contextInitialized(PluginFrameworkContextListener.java:59)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.lucene.store.LockReleaseFailedException: Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /var/local/confluencedata/index/plugin/usage/write.lock
Diagnosis
Unix users can run the lsof
and ls
commands to determine ownership of the file
$ lsof /var/local/confluencedata/index/plugin/usage/write.lock
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 9939 confluence 303uW REG 0,44 0 17040070 /var/local/confluencedata/index/plugin/usage/write.lock
$ ls -laF /var/local/confluencedata/index/plugin/usage/write.lock
-rw-rw-r-- 1 confluence confluence 2460 Oct 9 10:34 /var/local/confluencedata/index/plugin/usage/write.lock
Cause
Confluence prevents multiple instances from running on the same server and as such, creates lock files for itself. However, when this error happens, it means Confluence is unable to write on the write.lock
file. This can happen for two reasons:
- Permission issues, such as on the Diagnosis section above - please ensure the permissions over the Confluence directories (and the
write.lock
file) are correct - These files aren't properly removed if Confluence is shut down using an alternative method other than using the
stop-confluence
script (if running Confluence manually), or stopping the service (if running Confluence as a service).- For example, this issue can happen if the server/application crashes, or the Confluence process is forcefully terminated. A restarting Confluence instance won't start if it detects these leftover
lock
files.
- For example, this issue can happen if the server/application crashes, or the Confluence process is forcefully terminated. A restarting Confluence instance won't start if it detects these leftover
- Such a problem has also been noticed whilst having multiple Confluence Windows Service running and writing in the Home Directory
Resolution
- Shutdown Confluence.
Navigate to the path mentioned into the stack trace and delete the write.lock file.
In the above stack traces, the paths would be
'D:\Confluence\Confluence_Home\index\write.lock'
, or'
/var/local/confluencedata/index/plugin/usage/write.lock
' for example.Check the permissions of the Confluence Home directory, to make sure they match the user running Confluence
- (Optional) If running on a Windows OS: Check that you don't have multiple services running on the same instance for the same Confluence site. Disable the duplicates services to only keep the most recent one created running
Start Confluence.
If the error persists:
Shutdown Confluence again.
Delete the file one more time.
Run the steps of the Rebuilding Confluence Index from the scratch guide.
Try starting Confluence one more and if the application starts go to Confluence Admin > Content Indexing.
- Click the Rebuild button.