JIRA create issue hang - MS MSQL deadlock?

Ondrej Berger December 13, 2011

Hi,

we are supporting for our customer JIRA 4.4.1. server.

It's installed on Windows 2003 Server, using MS SQL 2005 database and JDTS 1.2.5 JDBC driver.

Following problem seems to start after we upgrade JIRA from 4.2 to 4.4.1.

Our problem is that sometimes (lets say 1-2 times a week) JIRA hangs when creating a new issue. It works fine till form with new issue is submitted. Even after that seems that everything (except create issue) works - dashboards, viewing issues etc. In log there is nothing, so we made a thread dumps after some time in that "hang" state and in all dumps there was following :

"http-192.168.147.31-443-56" daemon prio=6 tid=0x6bd06400 nid=0x854 runnable [0x71ddd000]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.DataInputStream.readFully(DataInputStream.java:178)
	at java.io.DataInputStream.readFully(DataInputStream.java:152)
	at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:846)
	at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:727)
	- locked <0x2b032d00> (a java.util.ArrayList)
	at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:466)
	at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:103)
	at net.sourceforge.jtds.jdbc.ResponseStream.peek(ResponseStream.java:88)
	at net.sourceforge.jtds.jdbc.TdsCore.wait(TdsCore.java:3932)
	at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1046)
	- locked <0x2d5200c8> (a net.sourceforge.jtds.jdbc.TdsCore)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:465)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:776)
	- locked <0x2b01e6d0> (a net.sourceforge.jtds.jdbc.ConnectionJDBC3)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:205)
	at org.ofbiz.core.entity.jdbc.SQLProcessor.executeQuery(SQLProcessor.java:597)
	at org.ofbiz.core.entity.GenericDAO.select(GenericDAO.java:497)
	at org.ofbiz.core.entity.GenericDAO.select(GenericDAO.java:464)
	at org.ofbiz.core.entity.GenericHelperDAO.findByPrimaryKey(GenericHelperDAO.java:78)
	at org.ofbiz.core.entity.GenericDelegator.findByPrimaryKey(GenericDelegator.java:543)
	at org.ofbiz.core.entity.GenericDelegator.findByPrimaryKey(GenericDelegator.java:578)
	at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareMethodInterceptor.intercept(MultiTenantComponentFactoryImpl.java:230)
	at org.ofbiz.core.entity.GenericDelegator$$EnhancerByCGLIB$$a0136d89.findByPrimaryKey(<generated>)
	at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.findByPrimaryKey(DefaultOfBizDelegator.java:394)
	at com.atlassian.jira.project.DefaultProjectManager.getProject(DefaultProjectManager.java:265)
	at com.atlassian.jira.project.DefaultProjectManager$1.getProject(DefaultProjectManager.java:81)
	at com.atlassian.jira.project.DefaultProjectManager$NextIdGenerator$2.call(DefaultProjectManager.java:672)
	at com.atlassian.jira.project.DefaultProjectManager$NextIdGenerator$2.call(DefaultProjectManager.java:668)
	at com.atlassian.util.concurrent.ManagedLocks$ManagedLockImpl.withLock(ManagedLocks.java:324)
	at com.atlassian.util.concurrent.LockManagers$Manager.withLock(LockManagers.java:107)
	at com.atlassian.jira.project.DefaultProjectManager$NextIdGenerator.getNextId(DefaultProjectManager.java:667)
	at com.atlassian.jira.project.DefaultProjectManager.getNextId(DefaultProjectManager.java:146)
	at com.atlassian.jira.project.AbstractProjectManager.getNextId(AbstractProjectManager.java:51)
	at com.atlassian.jira.project.CachingProjectManager.getNextId(CachingProjectManager.java:70)
	at com.atlassian.jira.workflow.function.issue.IssueCreateFunction.execute(IssueCreateFunction.java:51)
	at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:869)
	at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1265)
	at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:618)
	at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:815)
	at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:461)
	at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:383)
	at com.atlassian.jira.bc.issue.DefaultIssueService.create(DefaultIssueService.java:193)
	at com.atlassian.jira.bc.issue.DefaultIssueService.create(DefaultIssueService.java:207)
	at com.atlassian.jira.web.action.issue.CreateIssueDetails.createIssue(CreateIssueDetails.java:95)
	at com.atlassian.jira.web.action.issue.CreateIssueDetails.doExecute(CreateIssueDetails.java:71)
	at webwork.action.ActionSupport.execute(ActionSupport.java:165)
	at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:76)

So it seems all creating actions (that edit database) are all locked by some running transaction which seems to be deadlocked and never ends. After restarting JIRA everything works fine for some time till simillar situation happens again and we are forced restart JIRA again.

After one JIRA restart (just once, not every time) there was in log :

2011-11-24 08:20:47,980 http-192.168.147.31-443-7 ERROR      [500ErrorPage.jsp] Exception caught in 500 page org.ofbiz.core.entity.GenericEntityException: Error getting the next result (Transaction (Process ID 72) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.)
com.atlassian.crowd.embedded.ofbiz.db.DataAccessException: org.ofbiz.core.entity.GenericEntityException: Error getting the next result (Transaction (Process ID 72) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.)
	at com.atlassian.crowd.embedded.ofbiz.db.OfBizHelper.findByAnd(OfBizHelper.java:51)
	at com.atlassian.crowd.embedded.ofbiz.OfBizUserDao.findAttributesGenericValues(OfBizUserDao.java:296)
	at com.atlassian.crowd.embedded.ofbiz.OfBizUserDao.findByNameWithAttributes(OfBizUserDao.java:115)
	at com.atlassian.crowd.directory.AbstractInternalDirectory.findUserWithAttributesByName(AbstractInternalDirectory.java:126)
	at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.findUserWithAttributesByName(DirectoryManagerGeneric.java:288)
	at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.findUserWithAttributesByName(ApplicationServiceGeneric.java:307)
	at com.atlassian.crowd.embedded.core.CrowdServiceImpl.getUserWithAttributes(CrowdServiceImpl.java:109)
	at com.atlassian.crowd.embedded.core.DelegatingCrowdService.getUserWithAttributes(DelegatingCrowdService.java:45)
	at com.atlassian.crowd.embedded.core.FilteredCrowdServiceImpl.getUserWithAttributes(FilteredCrowdServiceImpl.java:43)
	at com.atlassian.jira.security.login.LoginStoreImpl.getLoginInfo(LoginStoreImpl.java:107)
	at com.atlassian.jira.security.login.LoginStoreImpl.recordLoginAttempt(LoginStoreImpl.java:82)
	at com.atlassian.jira.security.login.LoginManagerImpl.recordLoginAttempt(LoginManagerImpl.java:321)
	at com.atlassian.jira.security.login.LoginManagerImpl.onLoginAttempt(LoginManagerImpl.java:203)
	at com.atlassian.jira.security.login.JiraElevatedSecurityGuard.onSuccessfulLoginAttempt(JiraElevatedSecurityGuard.java:34)
	at com.atlassian.seraph.auth.DefaultAuthenticator.getUserFromCookie(DefaultAuthenticator.java:467)
	at com.atlassian.seraph.auth.DefaultAuthenticator.getUser(DefaultAuthenticator.java:327)
	at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:125)

In time of that exception in SQL logs we found following :

deadlock-list
2011-11-24 08:20:46.77 spid19s      deadlock victim=process3a13ac8
2011-11-24 08:20:46.77 spid19s       process-list
2011-11-24 08:20:46.77 spid19s        process id=process3a13ac8 taskpriority=0 logused=0 waitresource=KEY: 5:72057594052935680 (01007349e4a7) waittime=4765 ownerId=7134886092 transactionname=SELECT lasttranstarted=2011-11-24T08:20:41.990 XDES=0x1287e4558 lockMode=S schedulerid=2 kpid=14972 status=suspended spid=72 sbid=0 ecid=0 priority=0 transcount=0 lastbatchstarted=2011-11-24T08:20:41.990 lastbatchcompleted=2011-11-24T08:20:41.990 clientapp=jTDS hostname=SRV-JOULE-VPC hostpid=123 loginname=ceskyweb isolationlevel=read committed (2) xactid=7134886092 currentdb=5 lockTimeout=4294967295 clientoption1=671088672 clientoption2=128056
2011-11-24 08:20:46.77 spid19s         executionStack
2011-11-24 08:20:46.77 spid19s          frame procname=adhoc line=1 stmtstart=46 sqlhandle=0x020000000c9f3a043beaf7dab3dde039dde480095e466a99
2011-11-24 08:20:46.77 spid19s     SELECT ID, user_id, directory_id, attribute_name, attribute_value, lower_attribute_value FROM jiraschema.cwd_user_attributes WHERE user_id= @P0  AND directory_id= @P1     
2011-11-24 08:20:46.77 spid19s         inputbuf
2011-11-24 08:20:46.77 spid19s     (@P0 bigint,@P1 bigint)SELECT ID, user_id, directory_id, attribute_name, attribute_value, lower_attribute_value FROM jiraschema.cwd_user_attributes WHERE user_id= @P0  AND directory_id= @P1     
2011-11-24 08:20:46.77 spid19s        process id=process3a27978 taskpriority=0 logused=284 waitresource=KEY: 5:72057594054377472 (5f052fa34539) waittime=4765 ownerId=7134886096 transactionname=DELETE lasttranstarted=2011-11-24T08:20:42.007 XDES=0x8e4858f0 lockMode=X schedulerid=4 kpid=28560 status=suspended spid=182 sbid=0 ecid=0 priority=0 transcount=2 lastbatchstarted=2011-11-24T08:20:42.007 lastbatchcompleted=2011-11-24T08:20:42.007 clientapp=jTDS hostname=SRV-JOULE-VPC hostpid=123 loginname=ceskyweb isolationlevel=read committed (2) xactid=7134886096 currentdb=5 lockTimeout=4294967295 clientoption1=671088672 clientoption2=128056
2011-11-24 08:20:46.77 spid19s         executionStack
2011-11-24 08:20:46.77 spid19s          frame procname=adhoc line=1 stmtstart=62 sqlhandle=0x0200000049aac32c40325ee16d65cdcc4256c0703d112893
2011-11-24 08:20:46.77 spid19s     DELETE FROM jiraschema.cwd_user_attributes WHERE user_id= @P0  AND attribute_name= @P1     
2011-11-24 08:20:46.77 spid19s         inputbuf
2011-11-24 08:20:46.77 spid19s     (@P0 bigint,@P1 nvarchar(4000))DELETE FROM jiraschema.cwd_user_attributes WHERE user_id= @P0  AND attribute_name= @P1     
2011-11-24 08:20:46.77 spid19s       resource-list
2011-11-24 08:20:46.77 spid19s        keylock hobtid=72057594052935680 dbid=5 objectname=jira_4.jiraschema.cwd_user_attributes indexname=PK_cwd_user_attributes id=lockfb678600 mode=X associatedObjectId=72057594052935680
2011-11-24 08:20:46.77 spid19s         owner-list
2011-11-24 08:20:46.77 spid19s          owner id=process3a27978 mode=X
2011-11-24 08:20:46.77 spid19s         waiter-list
2011-11-24 08:20:46.77 spid19s          waiter id=process3a13ac8 mode=S requestType=wait
2011-11-24 08:20:46.77 spid19s        keylock hobtid=72057594054377472 dbid=5 objectname=jira_4.jiraschema.cwd_user_attributes indexname=uk_user_attr_name_lval id=lock114e27400 mode=U associatedObjectId=72057594054377472
2011-11-24 08:20:46.77 spid19s         owner-list
2011-11-24 08:20:46.77 spid19s          owner id=process3a13ac8 mode=S
2011-11-24 08:20:46.77 spid19s         waiter-list
2011-11-24 08:20:46.77 spid19s          waiter id=process3a27978 mode=X requestType=convert

So it looks that MS SQL sometimes gets to a deadlock, or something simillar, but we are not sure because exception with related SQL log happened only once and not in other hang situations.

We are desperate because we don't know what to do :( Any help would be very appreciated.

Thank you.

Ondrej Berger

2 answers

1 accepted

0 votes
Answer accepted
Dieter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 13, 2011
PLease try 4.4.3. There are knon problems with creating issues in 4.4.1 and 4.4.2
Dieter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 13, 2011
More information can be found at https://jira.atlassian.com/browse/JRA-25708
0 votes
Ondrej Berger January 1, 2012

Seems ok now. Thank you.

Suggest an answer

Log in or Sign up to answer