Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-26296

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

XMLWordPrintable

    • We collect Confluence feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      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

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

                Created:
                Updated:
                Resolved: