After upgrading, Confluence Data Center service does not start anymore
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
Summary
After upgrading your Confluence installation to Confluence 7.15.0 or higher, Confluence service does not start anymore
Environment
Confluence 7.15.0 or higher.
Diagnosis
The below error is observed in the atlassian-confluence.log
:
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Standalone].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Filter mapping specifies an unknown filter name [AccessLogFilter]
at org.apache.catalina.core.StandardContext.validateFilterMap(StandardContext.java:3067)
at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:3029)
at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1453)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1335)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:986)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
Cause
This error implies that there is a custom logging for an "AccessLogFilter" entry enabled in either CONFLUENCE_INSTALL/confluence/WEB-INF/classes/log4j.properties
or CONFLUENCE_INSTALL/confluence/WEB-INF/web.xml
files.
From Confluence 7.15 onwards the filter name for the AccessLogFilter was removed from the web.xml
file. This filter name and filter mapping are now being passed on the server.xml
file. Hence, the AccessLogFilter in the web.xml
that was copied from a previous installation causes this issue.
Solution
Follow the steps below to resolve the situation:
- Stop Confluence
- Search by the AccessLogFilter entry in the
CONFLUENCE_INSTALL/confluence/WEB-INF/classes/log4j.properties
orCONFLUENCE_INSTALL/confluence/WEB-INF/web.xml
files. - Edit the file and comment out the AccessLogFilter entry.
- Start Confluence