SpringMVC dispatcher could not be started
Symptoms
Stash fails to startup.
The following message is displayed on the UI:
The following problem occurred which prevents Atlassian Stash from starting correctly:
SpringMVC dispatcher [springMvc] could not be started
And following exception is reported in the catalina.out
file:
15:08:16,767 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[stash.application] - openFile(/var/atlassian/application-data/stash/log/atlassian-stash.log,true) call failed. java.io.FileNotFoundException: /var/atlassian/application-data/stash/log/atlassian-stash.log (Permission denied)
at java.io.FileNotFoundException: /var/atlassian/application-data/stash/log/atlassian-stash.log (Permission denied)
at at java.io.FileOutputStream.open(Native Method)
at at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:28)
at at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:149)
at at ch.qos.logback.core.FileAppender.start(FileAppender.java:108)
at at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:86)
at at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:96)
at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49)
at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)
at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:129)
at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)
at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:302)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:276)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:288)
at at com.atlassian.stash.internal.lifecycle.DefaultStartupManager.<clinit>(DefaultStartupManager.java:18)
at at com.atlassian.stash.internal.spring.StashWebApplicationInitializer.onStartup(StashWebApplicationInitializer.java:65)
at at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423)
at at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at at java.lang.Thread.run(Thread.java:744)
Cause
/var/atlassian/application-data/stash/
Which is the <Stash home directory>
folder is not accessible to the user running Stash. The permissions on the directories contained within <Stash home directory>
might be mixed like that:
For further steps on how to diagnose this please see - How to View Detailed permissions for Stash directory
Resolution
Ensure the user has sufficient read/write/execute permissions on the above folder and restart the application.
For the example above, the following commands were run:
$ cd /var/atlassian/application-data/stash
$ chown -R atlstash:atlstash *