I have been scripting a transition function the last couple of days and we realized that the memory seems to file up which stops the users from accessing the JIRA server. (JIRA 7.3.1) When looking at the logs when restarting the server, we noticed this line of code: 2017-06-06 10:06:13,729 http-nio-8080-exec-14 ERROR anonymous 606x2x1 - <IP Address> /secure/Dashboard.jspa [c.atlassian.instrumentation.Instrument] Unable to snapshot thread local operations (implementation of OpTimerFactory is not a ThreadLocalOpTimerFactory): null
It seems that the snapshot operation started immediately on JIRA start. I will post the scriptrunner code that I have been working on, just incase they are correlated.
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl import com.onresolve.scriptrunner.runner.customisers.PluginModule import com.onresolve.scriptrunner.runner.customisers.WithPlugin import java.lang.Object import com.atlassian.jira.issue.worklog.WorklogImpl2 import java.text.SimpleDateFormat import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.issue.worklog.WorklogImpl import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.worklog.DefaultWorklogManager import com.atlassian.jira.security.roles.ProjectRoleManager import com.atlassian.jira.issue.worklog.Worklog import com.tempoplugin.core.workattribute.api.WorkAttributeService import com.tempoplugin.core.workattribute.api.WorkAttributeValueService //Tempo Plugin //@WithPlugin("is.origo.jira.tempo-plugin") //@PluginModule //WorkAttributeService workAttributeService def componentManager = ComponentManager.getInstance() def customFieldManager = ComponentAccessor.getCustomFieldManager() def cfend = customFieldManager.getCustomFieldObjectByName("End Date") def cfstart = customFieldManager.getCustomFieldObjectByName("Start Date") def cfdays = customFieldManager.getCustomFieldObjectByName("Used vacation days") def reporter = issue.reporter.name def worklogManager = ComponentAccessor.getWorklogManager(); //Take customfield object and change it to time double stDate = (issue.getCustomFieldValue(cfstart) as Date).getTime()//time in milliseconds double enDate = (issue.getCustomFieldValue(cfend) as Date).getTime()//time in milliseconds double timediff = (enDate - stDate)/1000 // returns the time difference in seconds int days = (issue.getCustomFieldValue(cfdays) as int)//return the number of days timediff = Math.round(timediff) ProjectRoleManager projectRoleManager = ComponentManager.getComponentInstanceOfType(ProjectRoleManager.class) as ProjectRoleManager def UsersRole = projectRoleManager.getProjectRole("Users") long timespent = 27000 for(int i=1; i<=days;i++){ def worklog = new WorklogImpl2(issue, null, issue.reporter.name, issue.summary, (issue.getCustomFieldValue(cfstart) as Date) - 1 + i , null, null,timespent, UsersRole) worklogManager.create(issue.reporter, worklog, 0L, true) } return 0;
I have tried other scripts before this one, so there is a chance that the error also came from a past code. If anybody knows anything about this error or this exception, please let me know
Do you have profiling enabled under Administration -> Logging & Profiling ? That may give you that error.
I would say they seem unrelated at the moment.
We took a backup of our main server and used that to create a new testing server and the issue hasn't come up since. Thank you for the response. We don't know what exactly caused this problem, but it seems to be working fine now.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.