Make gAbortExpiredTransactionsSessionCheckoutTimeout atomic

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.2.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Server Programmability
    • Fully Compatible
    • ALL
    • v8.1, v8.0, v7.0, v6.0
    • Programmability 2025-03-31
    • 200
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The global `gAbortExpiredTransactionsSessionCheckoutTimeout` is a global int. Command setParameter references this int through the `IDLServerParameterWithStorage` type, which effectively wraps the global in a mutex. When the `PeriodicThreadToAbortExpiredTransactions` thread references the global, it is unprotected because it does not go through the `IDLServerParameterWithStorage` type.

      Other IDL parameters that can be changed at runtime typically use an Atomic. This means that there's 2 forms of synchronization here (`IDLServerParameterWithStorage`, atomic global) which is not ideal, but I think we can just follow the precedence here considering the changes are not performance sensitive.

            Assignee:
            Alex Li
            Reporter:
            Alex Li
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: