When using MS SQL Server, Check for 'Read-Committed with Row Versioning' transaction isolation during startup/upgrades

XMLWordPrintable

      NOTE: This suggestion is for Confluence Server. Using Confluence Cloud? See the corresponding suggestion.

      A Confluence backed by MS SQL Server can run into deadlocking problems when not using transaction isolation level 'Read Committed with Row Versioning'. This often occurs silently without warning in Confluence logs:
      https://jira.atlassian.com/browse/CONF-21986
      https://jira.atlassian.com/browse/CONF-22302
      https://confluence.atlassian.com/display/CONFKB/Database+Deadlock+on+Microsoft+SQL+Server
      https://confluence.atlassian.com/display/CONFKB/UPM+Cannot+be+Upgraded
      https://confluence.atlassian.com/display/CONFKB/Confluence+Hangs+When+Trying+to+Add+or+Manage+Users

      To the observer, the symptom is that the application 'hangs', with or without errors in the Confluence logs. In the case of an upgrade, when observing the logs an upgrade task will be seemingly 'stuck' and refuse to proceed (no errors).

      We should check for DB transaction isolation level during start up and print an error/warning in the logs if not using the recommended isolation. We can also go one step further and prevent the application from starting, like we do for MySQL if they're not using READ-COMMITTED.

        1. img.PNG
          54 kB
          Deividi Luvison

            Assignee:
            Deividi Luvison (Inactive)
            Reporter:
            Robert Chang (Inactive)
            Votes:
            10 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: