We were coming off of a full reindex of Jira datacenter.
When I use the "updated" field in the jql it only finds the issue when I do a manual search via "Run Now" (preview), and it shows in the log and does the subsequent transition.
But when I let it run automatically via cron expression, then it doesn't find the updated issue.
I have a feeling that something might be cached or some user context is missing when the job runs by itself or maybe you just can't use "updated" in a ScriptRunner job JQL query or this is exclusively a datacenter problem?
Edit: The user has full admin permissions in the project
I think I might have figured out why the job searches were not working. Still testing this in detail:
I think all jobs were essentially sharing a single cached SearcherContext, which is used to search the index, and the recent version of the search method didn't have a finally block with
}finally{
ThreadLocalSearcherCache.stopAndCloseSearcherContext()
}
Which means whenever a Job used the search method , it created a SearchContext that was never closed, and this old cached SearcherContext then gets reused by other jobs, and apparently it holds or references a cached version of the index.
The whole searcherContext opening was done to prevent this issue, where logs get flooded:
Hello.
If I understand correctly, @Joerg you made assumption what Groovy ScriptRunner job executor wrong manages search index?
Are there any fixes for that in some Groovy ScriptRunner version?
I also experience problem what I see estimation near JQL field what job will be run on 21 issues, but when I run it actually, by log I see there 40 processed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey.
Sorry, but it has been so long that I don't remember the exact details.
There was some strangeness going on there, but since we are preparing to move to Jira cloud we didn't put anymore time into researching these problems.
I remember it being the opposite of what you described, i.e. that it shows f.e. 5000 issues next to the jql field, but when the job script actually runs it only processes exactly 50% of the issues ever time until the number of issues to be processed is lower than a certain threshold and I don't know why.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Oh and be very careful when closing or creating a SearcherContext via script. Can lead to some scripts not running at all or returning false results.
Don't mess with this if things are working fine.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I believe I do not use SearcherContext in script explicitly.
I just want to process all issues, which are found by JQL. And now that work incorrectly - script processed more issues than actually found by JQL in settings. And that looks very strange for me.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Alright so I have no idea what is going on, but something isn't working still.
This Escalation Job should at all times find 1 issue, and it does if I execute it, but not when it runs on its own:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.