Skip to content

Make mountsLock and authLock in Core configurable#27633

Merged
marcboudreau merged 2 commits intomainfrom
marcboudreau/VAULT-28045/configurable-lock-for-mount-table
Jul 2, 2024
Merged

Make mountsLock and authLock in Core configurable#27633
marcboudreau merged 2 commits intomainfrom
marcboudreau/VAULT-28045/configurable-lock-for-mount-table

Conversation

@marcboudreau
Copy link
Copy Markdown
Contributor

@marcboudreau marcboudreau commented Jun 27, 2024

Description

This PR changes the mountsLock and authLock fields in the Core struct from locking.DeadlockRWMutex to locking.RWMutex. This change allows the fields to be set to either locking.DeadlockRWMutex or locking.SyncRWMutex (or any other type that fulfills the locking.RWMutex interface for that matter).

These fields are now set using the locking.CreateConfigurableRWMutex function which selects the locking.DeadlockRWMutex implementation if the provided lock type name is present in the provided detectDeadlocks slice.

The detect_deadlocks configuration parameter is used to specify which locks are configured to use the locking.DeadlockRWMutex. If a lock is not specified in that parameter, it is configured to use the locking.SyncRWMutex which is an alias for sync.RWMutex.

This PR has an accompanying ENT PR: https://github.com/hashicorp/vault-enterprise/pull/6163

TODO only if you're a HashiCorp employee

  • Labels: If this PR is the CE portion of an ENT change, and that ENT change is
    getting backported to N-2, use the new style backport/ent/x.x.x+ent labels
    instead of the old style backport/x.x.x labels.
  • Labels: If this PR is a CE only change, it can only be backported to N, so use
    the normal backport/x.x.x label (there should be only 1).
  • ENT Breakage: If this PR either 1) removes a public function OR 2) changes the signature
    of a public function, even if that change is in a CE file, double check that
    applying the patch for this PR to the ENT repo and running tests doesn't
    break any tests. Sometimes ENT only tests rely on public functions in CE
    files.
  • Jira: If this change has an associated Jira, it's referenced either
    in the PR description, commit message, or branch name.
  • RFC: If this change has an associated RFC, please link it in the description.
  • ENT PR: If this change has an associated ENT PR, please link it in the
    description. Also, make sure the changelog is in this PR, not in your ENT PR.

@github-actions github-actions bot added the hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed label Jun 27, 2024
@marcboudreau marcboudreau added this to the 1.17.2 milestone Jun 27, 2024
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 27, 2024

CI Results:
All Go tests succeeded! ✅

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 27, 2024

Build Results:
All builds succeeded! ✅

@marcboudreau marcboudreau force-pushed the marcboudreau/VAULT-28045/configurable-lock-for-mount-table branch from 9c62a1e to 2efa193 Compare June 28, 2024 20:04
Copy link
Copy Markdown
Collaborator

@raskchanky raskchanky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marcboudreau marcboudreau merged commit c5c185f into main Jul 2, 2024
@marcboudreau marcboudreau deleted the marcboudreau/VAULT-28045/configurable-lock-for-mount-table branch July 2, 2024 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants