Details
-
Bug
-
Resolution: Fixed
-
High
-
7.14.1, 7.14.4, 7.15.1, 7.15.2
-
None
-
5
-
Severity 3 - Minor
-
4
-
Description
Issue Summary
It seems the new search component introduced in ATST v1.41.4 (CONFSRVDEV-21696 Update LuceneHealthCheck to replace LuceneConnection) is causing the Lucene index health check to fail, despite it being active and working as expected.
- Rebuilding the content index does not clear the warning.
- While testing on local labs, the issue seems to be restricted to versions 7.14.x and 7.15.x (7.13 or 7.16+ did not show similar behavior)
- This is reproducible on Data Center: yes
Steps to Reproduce
- Install (or access an existing) Confluence 7.14.x or 7.15.x
- Confirm installed ATST is v.1.38.0 (or up to 1.41.1)
- Access Confluence administration > Troubleshooting and Support Tools > Verify that no health check warnings are present
- Upgrade to ATST v.1.41.4
- Access Confluence administration > Troubleshooting and Support Tools > Verify that the "Lucene index failed" warning is shown
Expected Results
As nothing changed on the Confluence instance (besides the ATST upgrade) it is expected that no health check appears on the Troubleshooting and Support Tools page. As far as we can tell, Indexes are successfully created and healthy.
Actual Results
Exception during health check invocation java.lang.NoClassDefFoundError: com/atlassian/confluence/search/v2/SearchIndexAccessor
The below exception is thrown in the atlassian-confluence.log file:
2022-09-14 06:55:09,259 WARN [HealthCheckWatchdog:thread-1] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Lucene due to an exception java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/atlassian/confluence/search/v2/SearchIndexAccessor at java.base/java.util.concurrent.FutureTask.report(Unknown Source) at java.base/java.util.concurrent.FutureTask.get(Unknown Source) at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.getFutureWithTimeout(SupportHealthCheckTask.java:97) at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.lambda$runAsync$0(SupportHealthCheckTask.java:77) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: com/atlassian/confluence/search/v2/SearchIndexAccessor at com.atlassian.troubleshooting.confluence.healthcheck.support.LuceneHealthCheck.check(LuceneHealthCheck.java:31) at com.atlassian.troubleshooting.healthcheck.impl.PluginSuppliedSupportHealthCheck.check(PluginSuppliedSupportHealthCheck.java:66) ... 4 more Caused by: java.lang.ClassNotFoundException: com.atlassian.confluence.search.v2.SearchIndexAccessor at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1412) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220) at org.apache.felix.framework.ExtensionManager$ExtensionManagerWiring.getClassByDelegation(ExtensionManager.java:940) at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1660) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1590) at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ... 6 more
Workaround
Update ATST to version 1.41.5 which contains a fix for this issue.