Issue with timezone between nodes, fails to get syncronized.

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

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.


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.


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.


Last modified on Feb 8, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.