Problem when trying Delete a JIRA issue via API

Hi,

We have an issue with one of our Script Listeners which fails to delete an issue on Generic Event that is fired as a post function of a transition.
The error we see in the server log is attached to the mail.
From the log-

2020-09-15 11:52:41,824 http-nio-8080-exec-24 ERROR JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.AbstractScriptListener] Script function failed on event: com.atlassian.jira.event.issue.IssueEvent, file:
com.querydsl.core.QueryException: Caught MySQLTransactionRollbackException for delete from customfieldvalue
where customfieldvalue.issue = ?
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)

After some investigation we came across this article from JIRA Knowledge Base –
https://confluence.atlassian.com/jirakb/nullpointerexception-when-deleting-a-custom-field-218272042.html
Which suggested running following SQL query-

select * from customfieldvalue where ISSUE is null;

After running it we got 10 rows-

±--------±------±------------±----------±------------±------------±----------±--------------------±----------±--------------+
| ID | ISSUE | CUSTOMFIELD | PARENTKEY | STRINGVALUE | NUMBERVALUE | TEXTVALUE | DATEVALUE | VALUETYPE | UPDATED |
±--------±------±------------±----------±------------±------------±----------±--------------------±----------±--------------+
| 246315 | NULL | 10510 | NULL | 10503 | NULL | NULL | NULL | NULL | NULL |
| 3112864 | NULL | 11103 | NULL | NULL | NULL | NULL | 2020-01-07 00:00:00 | NULL | 1578399412647 |
| 3112863 | NULL | 11104 | NULL | NULL | NULL | NULL | 2020-02-24 00:00:00 | NULL | 1578399412638 |
| 667233 | NULL | 11900 | NULL | NULL | NULL | NULL | 2017-06-05 00:00:00 | NULL | NULL |
| 631874 | NULL | 11901 | NULL | NULL | NULL | NULL | 2018-06-27 00:00:00 | NULL | NULL |
| 3112865 | NULL | 11903 | NULL | 24503 | NULL | NULL | NULL | NULL | 1578399412656 |
| 631898 | NULL | 11907 | NULL | 12821 | NULL | NULL | NULL | NULL | NULL |
| 1701197 | NULL | 12501 | NULL | czur119762 | NULL | NULL | NULL | NULL | 1559054025362 |
| 1700885 | NULL | 12894 | NULL | INQ-2726 | NULL | NULL | NULL | NULL | 1559050341055 |
| 1701198 | NULL | 14500 | NULL | 15500 | NULL | NULL | NULL | NULL | 1559054025365 |
±--------±------±------------±----------±------------±------------±----------±--------------------±----------±--------------+
10 rows in set (0.00 sec)

Then, we deleted those entries as following-
delete from customfieldvalue where issue is null;

We made sure all entries were deleted-
mysql> select * from customfieldvalue where ISSUE is null;
Empty set (0.00 sec)

These steps didn’t solve the issue even after running re-index on a specific project.
Deleting the issue manually works properly.

In addition,
A relevant log file is attached at the end of this post.

Regards,

Jessie Hermon
DevOps team | Applied Materials | Phone: +972-894-86594


2020-09-15 11:52:41,824 http-nio-8080-exec-24 ERROR JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.AbstractScriptListener] Script function failed on event: com.atlassian.jira.event.issue.IssueEvent, file:
com.querydsl.core.QueryException: Caught MySQLTransactionRollbackException for delete from customfieldvalue
where customfieldvalue.issue = ?
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
at com.querydsl.sql.dml.SQLDeleteClause.execute(SQLDeleteClause.java:222)
at com.atlassian.jira.issue.managers.CachingCustomFieldManager.lambda$removeCustomFieldValues$10(CachingCustomFieldManager.java:461)
at com.atlassian.jira.database.DefaultQueryDslAccessor$1.lambda$execute$1(DefaultQueryDslAccessor.java:91)
at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:74)
at com.atlassian.jira.database.DefaultQueryDslAccessor$1.execute(DefaultQueryDslAccessor.java:90)
at com.atlassian.jira.issue.managers.CachingCustomFieldManager.removeCustomFieldValues(CachingCustomFieldManager.java:458)
at com.atlassian.jira.issue.managers.DefaultIssueDeleteHelper.deleteIssue(DefaultIssueDeleteHelper.java:144)
at com.atlassian.jira.issue.managers.DefaultIssueManager.deleteIssue(DefaultIssueManager.java:743)
at com.atlassian.jira.issue.managers.RequestCachingIssueManager.deleteIssue(RequestCachingIssueManager.java:247)
at com.atlassian.jira.issue.IssueManager$deleteIssue$5.call(Unknown Source)
at com.onresolve.jira.groovy.test.scriptfields.scripts.Script119.deletePH(Script119.groovy:1279)
at com.onresolve.jira.groovy.test.scriptfields.scripts.Script119.run(Script119.groovy:447)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:951)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:98)
at com.atlassian.jira.ofbiz.sql.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:47)
at com.atlassian.jira.diagnostic.connection.DiagnosticPreparedStatement.lambda$executeUpdate$7(DiagnosticPreparedStatement.java:69)
at com.atlassian.diagnostics.internal.platform.monitor.db.DefaultDatabaseDiagnosticsCollector.recordExecutionTime(DefaultDatabaseDiagnosticsCollector.java:69)
at com.atlassian.jira.diagnostic.connection.DatabaseDiagnosticsCollectorDelegate.recordExecutionTime(DatabaseDiagnosticsCollectorDelegate.java:55)
at com.atlassian.jira.diagnostic.connection.DiagnosticPreparedStatement.executeUpdate(DiagnosticPreparedStatement.java:69)
at com.atlassian.jira.ofbiz.sql.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:47)
at com.querydsl.sql.dml.SQLDeleteClause.execute(SQLDeleteClause.java:208)
… 11 more
2020-09-15 11:52:41,828 http-nio-8080-exec-24 DEBUG JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.AbstractScriptRunner] eventTypeId = 13
2020-09-15 11:52:41,828 http-nio-8080-exec-24 DEBUG JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.AbstractScriptRunner] event = com.atlassian.jira.event.issue.IssueEvent@14a3369[issue=TEMPTEST-1857,comment=,worklog=,changelog=[GenericEntity:ChangeGroup][issue,467575][author,jhermonx095546][created,2020-09-15 11:51:48.287][id,4430981],eventTypeId=13,sendMail=true,params={eventsource=workflow, baseurl=https://jira-dc-prod.amat.com},subtasksUpdated=false,spanningOperation=Optional.empty]
2020-09-15 11:52:41,828 http-nio-8080-exec-24 DEBUG JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.AbstractScriptRunner] In Issue Updated. Issue = TEMPTEST-1857
2020-09-15 11:52:41,832 http-nio-8080-exec-24 ERROR JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.a.jira.transaction.TransactionSupportImpl] Unable to commit transaction : Commit failed, rollback previously requested by nested transaction.
org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.
at org.ofbiz.core.entity.TransactionUtil.commitLocalTransaction(TransactionUtil.java:345)
at com.atlassian.core.ofbiz.util.CoreTransactionUtil.commit(CoreTransactionUtil.java:62)
at com.atlassian.jira.transaction.TransactionSupportImpl$TransactionImpl.commit(TransactionSupportImpl.java:86)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:849)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:799)
at com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:514)
at com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:161)
… 1 filtered
at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
… 7 filtered
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
… 48 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
… 4 filtered
at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
… 7 filtered
at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:37)
… 4 filtered
at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
… 3 filtered
at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
… 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
… 47 filtered
at com.xpandit.raven.servlet.filter.IssueLinksInterceptor.doHttpFilter(Unknown Source)
at com.xpandit.raven.servlet.filter.AbstractServletFilter.doFilter(Unknown Source)
… 3 filtered
at com.almworks.jira.structure.event.interceptor.IssueLinksInterceptor.doHttpFilter(IssueLinksInterceptor.java:101)
at com.almworks.jira.structure.util.servlet.AbstractStructureServletFilter.doFilter(AbstractStructureServletFilter.java:34)
… 14 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
… 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
… 39 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
… 5 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:189)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:180)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:131)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:120)
… 9 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
… 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
… 4 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
… 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
… 25 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2020-09-15 11:52:41,834 http-nio-8080-exec-24 ERROR JHermonX095546 711x202688x4 m7c2kg 10.202.32.240 /secure/CommentAssignIssue.jspa [c.a.jira.workflow.OSWorkflowManager] Caught exception while attempting to perform action 31 from workflow 640280 on issue ‘TEMPTEST-1857’
com.atlassian.jira.transaction.TransactionRuntimeException: org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.
at com.atlassian.jira.transaction.TransactionSupportImpl$TransactionImpl.commit(TransactionSupportImpl.java:91)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:849)
at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:799)
at com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:514)
at com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:161)
… 1 filtered
at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
… 7 filtered
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
… 48 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
… 4 filtered
at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
… 7 filtered
at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:37)
… 4 filtered
at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
… 3 filtered
at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
… 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
… 47 filtered
at com.xpandit.raven.servlet.filter.IssueLinksInterceptor.doHttpFilter(Unknown Source)
at com.xpandit.raven.servlet.filter.AbstractServletFilter.doFilter(Unknown Source)
… 3 filtered
at com.almworks.jira.structure.event.interceptor.IssueLinksInterceptor.doHttpFilter(IssueLinksInterceptor.java:101)
at com.almworks.jira.structure.util.servlet.AbstractStructureServletFilter.doFilter(AbstractStructureServletFilter.java:34)
… 14 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
… 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
… 39 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
… 5 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:189)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:180)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:131)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:120)
… 9 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
… 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
… 4 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
… 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
… 25 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.
at org.ofbiz.core.entity.TransactionUtil.commitLocalTransaction(TransactionUtil.java:345)
at com.atlassian.core.ofbiz.util.CoreTransactionUtil.commit(CoreTransactionUtil.java:62)
at com.atlassian.jira.transaction.TransactionSupportImpl$TransactionImpl.commit(TransactionSupportImpl.java:86)
… 292 more