-
Bug
-
Resolution: Fixed
-
Low
-
None
-
8.4.0, 8.3.3
-
None
-
8.03
-
Severity 2 - Major
-
Jira doesn't start when Docker variable CLUSTER=true is set
When CLUSTER=true is set on docker variable, the cluster.properties file is automatically created.
- The file includes all variables which can be manually set (Reference - Installing Jira Data Center)
- Unless those variables are set in the docker config, they are generated without any value
jira.node.id=node1 jira.shared.home=/var/atlassian/application-data/jira/shared ehcache.peer.discovery= ehcache.listener.hostName= ehcache.object.port= ehcache.listener.port= ehcache.listener.socketTimeoutMillis= ehcache.multicast.address= ehcache.multicast.port= ehcache.multicast.timeToLive=
- Source: Bitbucket - docker-atlassian-jira - cluster.properties.j2
Environment
Steps to Reproduce
- Deploy docker image with variable CLUSTER=true
- Example:
docker run -v jiraVolume:/var/atlassian/application-data/jira -v jiraSharedVolume:/var/atlassian/application-data/jira/shared --name="jira" -p 8080:8080 -e=CLUSTERED=true -e=JIRA_NODE_ID=node1 atlassian/jira-software
- Example:
- Use "I'll set it up myself" option
- Select "Built In (for evaluation or demonstration)" to speed setup steps along
- The same error is created even using your own database
Expected Results
Database creation continues and Jira starts up as expected
Actual Results
The Jira process is terminated.
The below exception is thrown in the atlassian-jira.log file:
2019-09-10 20:59:19,239 http-nio-8080-exec-7 ERROR anonymous 1259x7x1 1gxaa6m 172.17.0.1 /secure/SetupDatabase.jspa [c.a.jira.startup.ComponentContainerLauncher] A fatal error occurred during initialisation. JIRA has been locked. net.sf.ehcache.CacheException: java.lang.NullPointerException at net.sf.ehcache.CacheManager.init(CacheManager.java:426) at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270) at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116) at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1092) at com.atlassian.jira.component.pico.registrar.CacheManagerRegistrar.getCacheManagerDelegate(CacheManagerRegistrar.java:264) at com.atlassian.jira.component.pico.registrar.CacheManagerRegistrar.registerCacheManager(CacheManagerRegistrar.java:162) at com.atlassian.jira.component.pico.registrar.ContainerRegistrar.registerCacheManager(ContainerRegistrar.java:3929) at com.atlassian.jira.component.pico.registrar.ContainerRegistrar.registerComponents(ContainerRegistrar.java:3876) at com.atlassian.jira.component.pico.ComponentManager.createFullContainer(ComponentManager.java:209) at com.atlassian.jira.startup.ComponentContainerLauncher.populateFullPicoContainer(ComponentContainerLauncher.java:50) at com.atlassian.jira.startup.ComponentContainerLauncher.start(ComponentContainerLauncher.java:30) at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postDbLaunch$2(DefaultJiraLauncher.java:140) at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.runPostDbSetupRunnables(DatabaseConfigurationManagerImpl.java:283) at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.activateDatabase(DatabaseConfigurationManagerImpl.java:276) at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.activateDatabase(DatabaseConfigurationManagerImpl.java:240) at com.atlassian.jira.web.action.setup.SetupDatabase.doExecute(SetupDatabase.java:217) ... 1 filtered at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63) ... 7 filtered at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ... 49 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64) ... 31 filtered at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) ... 24 filtered at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) ... 25 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at net.sf.ehcache.config.ConfigurationHelper.createCachePeerProviders(ConfigurationHelper.java:138) at net.sf.ehcache.CacheManager.configure(CacheManager.java:795) at net.sf.ehcache.CacheManager.doInit(CacheManager.java:471) at net.sf.ehcache.CacheManager.init(CacheManager.java:395) ... 163 more
Workaround
- Edit the cluster.properties file to remove unused parameters and restart the container