Running many repo/project deletes in parallel can trigger MS SQL Server deadlocks

XMLWordPrintable

    • Type: Bug
    • Resolution: Low Engagement
    • Priority: Low
    • None
    • Affects Version/s: None
    • Component/s: None
    • 2
    • Severity 3 - Minor
    • 1

      The following error stacks are sometimes observed when performing many repository deletions in parallel on Microsoft SQL Server:

      2016-08-03 08:54:38,446 WARN  [http-nio-8443-exec-10] obuchrob_adm *L2RM9Ox534x13350x2 1c0o1k4 10.32.177.121 "DELETE /rest/api/1.0/projects/PT00001919427032/repos/rk00001959657015 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper SQL Error: 1205, SQLState: 40001
      2016-08-03 08:54:38,446 ERROR [http-nio-8443-exec-10] obuchrob_adm *L2RM9Ox534x13350x2 1c0o1k4 10.32.177.121 "DELETE /rest/api/1.0/projects/PT00001919427032/repos/rk00001959657015 HTTP/1.1" o.h.e.jdbc.spi.SqlExceptionHelper Transaction (Process ID 80) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
      
      
      ...
      
      
      2016-08-03 08:54:38,473 WARN  [http-nio-8443-exec-10] obuchrob_adm *L2RM9Ox534x13350x2 1c0o1k4 10.32.177.121 "DELETE /rest/api/1.0/projects/PT00001919427032/repos/rk00001959657015 HTTP/1.1" c.a.s.i.u.RecentlyAccessedRepositoriesServiceImpl Repository accesses for PT00001919427032/rk00001959657015 could not be deleted
      org.hibernate.exception.LockAcquisitionException: could not execute statement
              at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:140) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:211) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute(BasicExecutor.java:109) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.hql.internal.ast.exec.BasicExecutor.execute(BasicExecutor.java:78) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.hql.internal.ast.exec.DeleteExecutor.execute(DeleteExecutor.java:125) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:445) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:379) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.internal.SessionImpl.executeUpdate(SessionImpl.java:1286) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at org.hibernate.internal.QueryImpl.executeUpdate(QueryImpl.java:118) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
              at com.atlassian.stash.internal.user.HibernateRepositoryAccessDao.deleteAllAccessesForRepository(HibernateRepositoryAccessDao.java:39) ~[bitbucket-dao-impl-4.2.3.jar:na]
              at com.atlassian.stash.internal.user.RecentlyAccessedRepositoriesServiceImpl.onRepositoryDeleteRequested(RecentlyAccessedRepositoriesServiceImpl.java:143) ~[bitbucket-service-impl-4.2.3.jar:na]
              at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) [atlassian-event-3.0.0.jar:na]
              at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:46) [atlassian-event-3.0.0.jar:na]
              at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) [guava-18.0.jar:na]
              at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:105) [atlassian-event-3.0.0.jar:na]
              at com.atlassian.event.internal.LockFreeEventPublisher$Publisher.dispatch(LockFreeEventPublisher.java:260) [atlassian-event-3.0.0.jar:na]
              at com.atlassian.event.internal.LockFreeEventPublisher.publish(LockFreeEventPublisher.java:102) [atlassian-event-3.0.0.jar:na]
              at com.atlassian.stash.internal.event.TransactionAwareEventPublisher.publish(TransactionAwareEventPublisher.java:84) [bitbucket-platform-4.2.3.jar:na]
              at com.atlassian.stash.internal.repository.DefaultRepositoryService.fireRepositoryDeletionRequested(DefaultRepositoryService.java:645) [bitbucket-service-impl-4.2.3.jar:na]
              at com.atlassian.stash.internal.repository.DefaultRepositoryService.lambda$delete$53(DefaultRepositoryService.java:188) [bitbucket-service-impl-4.2.3.jar:na]
              at com.atlassian.stash.internal.repository.DefaultRepositoryService$$Lambda$213/800613503.doInTransaction(Unknown Source) [bitbucket-service-impl-4.2.3.jar:na]
              at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) [spring-tx-4.2.2.RELEASE.jar:na]
              at com.atlassian.stash.internal.repository.DefaultRepositoryService.delete(DefaultRepositoryService.java:187) [bitbucket-service-impl-4.2.3.jar:na]
              at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:30) [atlassian-plugins-core-4.0.4.jar:na]
              at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56) [gemini-blueprint-core-2.0.0.BUILD-atlassian-m002.jar:2.0.0.BUILD-atlassian-m002]
      
      

            Assignee:
            Unassigned
            Reporter:
            Christian Glockner (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: