EmptyStackException on startup if permission denied on bamboo.cfg.xml

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Low
    • 8.1.0
    • Affects Version/s: 6.8.1
    • Component/s: Installation
    • None
    • 1
    • Severity 3 - Minor

      Issue Summary

      Bamboo will fail to startup with EmptyStackException in browser if it does not have permission on the file bamboo.cfg.xml

      Steps to Reproduce

      1. Remove Read permission on the file bamboo.cfg.xml
      2. Restart Bamboo

      Expected Results

      There will be an error page showing that there is file permission issue on the file bamboo.cfg.xml

      Actual Results

      The below exception is thrown in the error page:

      java.util.EmptyStackException
      	at java.util.Stack.peek(Stack.java:102)
      	at com.atlassian.bamboo.setup.DefaultSetupPersister.getCurrentStep(DefaultSetupPersister.java:122)
      	at com.atlassian.bamboo.setup.DefaultSetupPersister.configureSetupSequence(DefaultSetupPersister.java:180)
      	at com.atlassian.bamboo.setup.DefaultSetupPersister.getSetupStack(DefaultSetupPersister.java:144)
      	at com.atlassian.bamboo.setup.DefaultSetupPersister.getCurrentStep(DefaultSetupPersister.java:122)
      	at com.atlassian.bamboo.ww2.actions.setup.SelectSetupStepAction.execute(SelectSetupStepAction.java:22)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:899)
      	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1544)
      	at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
      	at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98)
      	at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90)
      	at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1620)
      	at ognl.ASTMethod.getValueBody(ASTMethod.java:91)
      	at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
      	at ognl.SimpleNode.getValue(SimpleNode.java:258)
      	at ognl.Ognl.getValue(Ognl.java:470)
      	at ognl.Ognl.getValue(Ognl.java:434)
      	at com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:401)
      	at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:453)
      	at com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:399)
      	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:438)
      	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:293)
      	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
      	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:181)
      	at com.atlassian.bamboo.ww2.interceptors.BambooWorkflowInterceptor.validateWorkflow(BambooWorkflowInterceptor.java:46)
      	at com.atlassian.bamboo.ww2.interceptors.BambooWorkflowInterceptor.access$000(BambooWorkflowInterceptor.java:16)
      	at com.atlassian.bamboo.ww2.interceptors.BambooWorkflowInterceptor$1.call(BambooWorkflowInterceptor.java:29)
      	at com.atlassian.bamboo.ww2.interceptors.BambooWorkflowInterceptor$1.call(BambooWorkflowInterceptor.java:26)
      	at com.atlassian.bamboo.util.BambooProfilingUtils.withUtilTimerStack(BambooProfilingUtils.java:35)
      	at com.atlassian.bamboo.ww2.interceptors.BambooWorkflowInterceptor.doIntercept(BambooWorkflowInterceptor.java:26)
      	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
      	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
      	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
      	at com.atlassian.bamboo.ww2.interceptors.BambooValidationInterceptor.validate(BambooValidationInterceptor.java:42)
      	at com.atlassian.bamboo.ww2.interceptors.BambooValidationInterceptor.access$000(BambooValidationInterceptor.java:12)
      	at com.atlassian.bamboo.ww2.interceptors.BambooValidationInterceptor$1.call(BambooValidationInterceptor.java:25)
      	at com.atlassian.bamboo.ww2.interceptors.BambooValidationInterceptor$1.call(BambooValidationInterceptor.java:22)
      

      Notes

      atlassian-bamboo.log does show the file permission issue but it will be great to have it displayed in the error page

      2019-05-22 20:49:06,714 ERROR [localhost-startStop-1] [DefaultAtlassianBootstrapManager] Home is not configured properly: 
      com.atlassian.config.ConfigurationException: failed to find config at: /bamboo/home/bamboo.cfg.xml
      	at com.atlassian.config.xml.DefaultDom4jXmlConfigurationPersister.load(DefaultDom4jXmlConfigurationPersister.java:69)
      	at com.atlassian.config.ApplicationConfig.load(ApplicationConfig.java:309)
      	at com.atlassian.bamboo.setup.BambooApplicationConfig.load(BambooApplicationConfig.java:61)
      	at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:72)
      	at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:118)
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1420)
      	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.io.FileNotFoundException: /bamboo/home/bamboo.cfg.xml (Permission denied)
      
      

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

            Assignee:
            Unassigned
            Reporter:
            Foong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: