Issue with timezone between nodes, fails to get syncronized.
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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
When having several nodes in a cluster, one of the nodes doesn't synchronize with the other nodes and doesn't have the same timezone.



Environment
Jira Data Center 9.x
Diagnosis
Node two has the current time of 12:24:59 while the other nodes are on 09:22 and 09:18.
In catalina.out log, a Groovy script is called in a post function, changing the timezone for the node.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Attempt to change the default timezone : parameter : sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] : detail : Coordinated Universal Timejava.util.TimeZone.setDefault(TimeZone.java:-1)
java_util_TimeZone$setDefault$0.call (Unknown Source)
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
script_5fa7adbf31539027610be61bb207c5a3.texto(script_5fa7adbf31539027610be61bb207c5a3.groovy:55)
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:566)
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:149)
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:100)
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:240)
script_5fa7adbf31539027610be61bb207c5a3.AddITE(script_5fa7adbf31539027610be61bb207c5a3.groovy:28)
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:566)
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:149)
org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:100)
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217)
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:249)
script_5fa7adbf31539027610be61bb207c5a3.run(script_5fa7adbf31539027610be61bb207c5a3.groovy:20)
com.innovalog.groovy.GroovyExpression.eval(GroovyExpression.java:193)
com.innovalog.jmwe.plugins.functions.GroovyFunction.executeFunction(GroovyFunction.java:65)
com.innovalog.jmwe.plugins.functions.AbstractPreserveChangesPostFunction.execute(AbstractPreserveChangesPostFunction.java:136)
com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1014)
com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1407)
com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:557)
com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:842)
com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:799)
com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:537)
com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:173)
webwork.action.ActionSupport.execute(ActionSupport.java:165)
com.atlassian.jira.web.action.JiraWebActionSupport.execute(JiraWebActionSupport.java:1364)
webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:39)
webwork.interceptor.NestedInterceptorChain.proceed(NestedInterceptorChain.java:31)
webwork.interceptor.ChainedInterceptor.intercept(ChainedInterceptor.java:16)
webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:35)
webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:225)
webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:154)
com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:141)
Cause
For this scenario, it was a plugin that executed a Groovy script in a post function that caused the timezone to change. When an automation transitions an issue com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:537), a post-function from Jira Misc Workflow Extensions, is calling a Groovy script.
1
2
3
4
5
6
7
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:249)
script_5fa7adbf31539027610be61bb207c5a3.run(script_5fa7adbf31539027610be61bb207c5a3.groovy:20)
com.innovalog.groovy.GroovyExpression.eval(GroovyExpression.java:193)
com.innovalog.jmwe.plugins.functions.GroovyFunction.executeFunction(GroovyFunction.java:65)
com.innovalog.jmwe.plugins.functions.AbstractPreserveChangesPostFunction.execute(AbstractPreserveChangesPostFunction.java:136)
com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1014)
com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1407)
Solution
Contact the vendor Jira Misc Workflow Extensions for support, and modify, or remove the script.
Important note - If you don't use Jira Misc Workflow Extensions as a plugin, there might be a chance that you will encounter this issue anyway due to another plugin or custom-written Groovy or Java script.
Was this helpful?