Uploaded image for project: 'Bamboo Data Center'
  1. Bamboo Data Center
  2. BAM-20438

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 8.1.0
    • 6.8.1
    • Installation
    • None

    Description

      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

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: