Uploaded image for project: 'Confluence Cloud'
  1. Confluence Cloud
  2. CONFCLOUD-26296

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

XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Fixed
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      NOTE: This suggestion is for Confluence Cloud. Using Confluence Server? 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:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: