After we upgraded to JIRA 6.3.9 and installed script runner 3.0.6, we could not reindex JIRA and found the following error in the log:
2014-11-04 23:35:43,655 IssueIndexer:thread-1 ERROR administrator 1415x440x1 xwt3vo 0:0:0:0:0:0:0:1 /secure/admin/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: XXXX-10122, field: My Field Name
com.atlassian.jira.issue.index.SearchUnavailableException
at com.atlassian.jira.issue.index.DefaultIndexManager.getIssueSearcher(DefaultIndexManager.java:832)
at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:83)
at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)
at com.sun.proxy.$Proxy14.getIssueSearcher(Unknown Source)
at com.atlassian.jira.issue.search.SearchProviderFactoryImpl.getSearcher(SearchProviderFactoryImpl.java:27)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:415)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:93)
at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:82)
at com.atlassian.jira.bc.issue.search.DefaultSearchService.search(DefaultSearchService.java:116)
at com.atlassian.jira.bc.issue.search.SearchService$search$0.call(Unknown Source)
at Script6.run(Script6.groovy:47)
------------------------------
After that, we uninstall script runner and reindex JIRA in success. Would you like to look into this issue and give us suggestions please?
I found a fix to this. Usually this happens to a script field (custom field that has a JQL function in it). The fix is to go to Admin -> Issues -> Custom Fields > choose your field (Edit) , and the choose "None" for the searcher template.
This will fix the issue because re-index will no longer trying to evaluate the scripted field. I have lowered the re-index time from 10 hours to 18 minutes.
Somewhere between 6.3 and 6.3.7 jira has changed to throw this exception during stop-the-world reindexing. I don't know what the solution is, as it makes sense that you can't do a search during reindexing.
Please could you watch: https://jamieechlin.atlassian.net/browse/GRV-569
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jamie,
We are having some issues with script runner which is a great plug-in. We do not have any custom code in our JIRA instance. Script runner was running great on JIRA 6.2.7. But JIRA gave us the following errors after we have upgrade JIRA to 6.3.11. We are having Script runner 3.0.7.
========================================================================================
2014-12-21 21:12:04,031 JiraTaskExectionThread-3 ERROR jerry.lee@xxxx.com 1255x17354x1 17h7cqv 67.170.248.236 /secure/admin/jira/IndexReIndex.jspa
[onresolve.scriptrunner.customfield.GroovyCustomField] *************************************************************
2014-12-21 21:12:04,031 JiraTaskExectionThread-3 ERROR jerry.lee@xxxx.com 1255x17354x1 17h7cqv 67.170.248.236 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: PPV-24, field: Release Week
java.lang.NullPointerException
=======================================================================================
Thanks,
Jerry
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello... I think you do have some custom code. It's telling you you have a field called Release Week, which uses a script to calculate its value. That's failing.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your quick response, Jamie. We may have created a custom field of "Release Week" before. But I can not find it anymore within our JIRA instance. I guess somebody created and then deleted it. Will this cause this issue?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Go to admin -> Script Fields. If you don't see it there then the CF has been removed. If not it's still there...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Jamie. I have found it following your comment. Deleted "Release Week" custom field already. Hope the errors will be gone. Will update here later.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Update: i looks like the bug is located in the interaction of JIRA-reindexing and the script itself: the script includes a JQL search. But during a indexing progress you can't search. That's the cause, why the script fails and also increases the indexing time extremely.
Solution: disabling the search for the scripted fields.
@Jamie: with JIRA5.2/Scriptrunner2 the behavior was other (no errors occurred).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jamie,
i have the same problem like Tracy, after upgrading for JIRA5.2 and Scriptrunner 2 to JIRA 6.3 and Scriptrunner3.
Also, my indexing time increased with the upgrade from 40 minutes to about 10 hours. Don't know it this has something to do with this.
My scripted worked fine with JIRA5.2 and Scriptrunner2 and it also looks to work fine with JIRA 6.3 and Scriptrunner3. I don't get any errors, just the output as expected.
Here's the Script:
//zeigt verwandte Meldungen nach Kartennummer und Autor enableCache = {false} import com.atlassian.crowd.embedded.api.User import com.atlassian.jira.bc.issue.search.SearchService import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.user.util.UserUtil import com.atlassian.jira.web.bean.PagerFilter SearchService searchService = ComponentAccessor.getComponent(SearchService.class) UserUtil userUtil = ComponentAccessor.getUserUtil() User user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() IssueManager issueManager = ComponentAccessor.getIssueManager() if (!user) { user = userUtil.getUserObject('someuser') } List<Issue> issuesByCard = null List<Issue> issuesByMA = null if ( getCustomFieldValue("Kartennummer") ) { String Kartennummer=getCustomFieldValue("Kartennummer") println "DEBUG Kartennummer: ${Kartennummer}" jqlSearchByCard = "project = BEM and issuetype = eC-Ausweis and Kartennummer ~ '${Kartennummer}' and not issuekey = ${issue.key} order by updated" if ( Kartennummer ) { SearchService.ParseResult parseResult1 = searchService.parseQuery(user, jqlSearchByCard) if (parseResult1.isValid()) { def searchResult1 = searchService.search(user, parseResult1.getQuery(), PagerFilter.getUnlimitedFilter()) // Transform issues from DocumentIssueImpl to the "pure" form IssueImpl (some methods don't work with DocumentIssueImps) issuesByCard = searchResult1.issues.collect {issueManager.getIssueObject(it.id)} println "DEBUG issuesByCard: ${issuesByCard}" } else { log.error("Invalid JQL: " + jqlSearchByCard); } } } if ( getCustomFieldValue("betroffene Person") ) { String Mitarbeiter=getCustomFieldValue("betroffene Person").name println "DEBUG Mitarbeiter: ${Mitarbeiter}" jqlSearchByMA = "project = BEM and issuetype = eC-Ausweis and 'betroffene Person' = '${Mitarbeiter}' and not issuekey = ${issue.key} order by updated" if ( Mitarbeiter ) { SearchService.ParseResult parseResult2 = searchService.parseQuery(user, jqlSearchByMA) if (parseResult2.isValid()) { def searchResult2 = searchService.search(user, parseResult2.getQuery(), PagerFilter.getUnlimitedFilter()) issuesByMA = searchResult2.issues.collect {issueManager.getIssueObject(it.id)} println "DEBUG issuesByMA: ${issuesByMA}" } else { log.error("Invalid JQL: " + jqlSearchByMA); } } } String issueList = "" if ( issuesByCard ) { String HeaderSingleIssueByCard = "Verwandte Meldungen nach Kartennummer: <br>" issueList=issueList + HeaderSingleIssueByCard for ( singleIssueByCard in issuesByCard ) { Date date = Date.parse("yyyy-MM-dd hh:mm:ss.S","${singleIssueByCard.updated}") String issueUpdatedDate = date.format("dd.MM.yyyy") issueList = issueList + "<a href=/jira/browse/" + singleIssueByCard + " target=newwinecausweis>${singleIssueByCard}</a> (Status: ${singleIssueByCard.status.name}, letzte Aktualisierung: ${issueUpdatedDate})<br>" } } if ( issuesByMA ) { String HeaderSingleIssueByMA = "Verwandte Meldungen nach Mitarbeiter: <br>" issueList=issueList + HeaderSingleIssueByMA for ( singleIssueByMA in issuesByMA ) { Date date = Date.parse("yyyy-MM-dd hh:mm:ss.S","${singleIssueByMA.updated}") String issueUpdatedDate = date.format("dd.MM.yyyy") issueList = issueList + "<a href=/jira/browse/" + singleIssueByMA + " target=newwinecausweis>${singleIssueByMA}</a> (Status: ${singleIssueByMA.status.name}, letzte Aktualisierung: ${issueUpdatedDate})<br>" } } if ( issueList != "" ) { return(issueList); } else { return ("Keine Daten gefunden"); }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jamie,
We believe we are having the same problem where there is a search in a scripted custom field is preventing a re-index. Here's the sequence of events:
1- Upgrade of Script Runner from an unknown previous version to 3.0.6
2- Upgrade of JIRA from 6.2.8 to 6.3.9
3- Unable to re-index- Log extract:
2014-11-11 17:40:59,278 IssueIndexer:thread-4 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-232, field: Deployment Procedure from AIS Project Issue java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script2.run(Script2.groovy:31) 2014-11-11 17:40:59,277 IssueIndexer:thread-6 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,279 IssueIndexer:thread-6 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-229, field: Deployment Linked Issues java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script19.run(Script19.groovy:33) 2014-11-11 17:40:59,263 IssueIndexer:thread-5 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,279 IssueIndexer:thread-5 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-231, field: Deployment Procedure from AIS Project Issue java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script2.run(Script2.groovy:31) 2014-11-11 17:40:59,262 IssueIndexer:thread-2 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,280 IssueIndexer:thread-2 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: HELPDESK-126, field: Deployment Related Issues List java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script5.run(Script5.groovy:33) 2014-11-11 17:40:59,261 IssueIndexer:thread-10 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,280 IssueIndexer:thread-10 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-230, field: Issues in Release java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script94.run(Script94.groovy:36) 2014-11-11 17:40:59,285 IssueIndexer:thread-5 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,285 IssueIndexer:thread-5 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-231, field: Deployment Related Issues List java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script5.run(Script5.groovy:33) 2014-11-11 17:40:59,285 IssueIndexer:thread-4 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] ************************************************************************************* 2014-11-11 17:40:59,286 IssueIndexer:thread-4 ERROR AZEMTCHI 1033x17124x1 16yuonn 10.10.6.70 /secure/admin/jira/IndexReIndex.jspa [onresolve.scriptrunner.customfield.GroovyCustomField] Script field failed on issue: INFOSYS-232, field: Deployment Related Issues List java.lang.NullPointerException: Cannot invoke method getDirectoryUser() on null object at Script5.run(Script5.groovy:33)
What I am trying to understand is why this has started happening since the upgrade of Script Runner and JIRA. We have asked the customer to remark out the offending scripted fields and see if they can re-index. I'm also open to suggestions on how we can resolve this problem permanently.
Thanks,
Chris
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Just to add a correction to my previous post- This has always been a problem and is not a problem that occurred after the upgrade. Just thought I would make that clear.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I don't think this is related to the OP's question, so I'd create a new question including the field script.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It's your code failing, not mine. Look at the script code for the field "My Field Name". Admin -> Script Fields.
Feel free to post the code.
But it sounds like you are doing a search from the field... which is relatively common, but is not going to work during a full reindex. Will need to have a think about that one.
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.