Backport of Fix issue caused by group-creation forwarding. into release/1.19.x #29601
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport
This PR is auto-generated from #29559 to be assessed for backporting due to the inclusion of the label backport/1.19.x.
The below text is copied from the body of the original PR.
Description
Fixes a bug introduced in #29483. That PR included an attempt to prevent duplicate groups with different IDs being created by a race condition, however that fix interferes in a subtle way when duplicate groups (causes by historical bugs, like the one it was trying to fix) are already present in storage. It turns out that that code was not actually necessary for the fix - removing it doesn't make any of the test cases added in https://github.com/hashicorp/vault-enterprise/pull/6990 fail - I ran them over 40 times each locally with no failures.
This PR also fixes up the URL in the reports since the docs were moved around.
Fixes VAULT-33879. This also fixes a bunch of potential new issues in the case that duplicate groups already exist - before this fix they would have loaded the contents of one group but swapped it's ID for another duplicate which is even more confusing and problematic than before!
There is no Enterprise part to this PR exactly, however while working on this I realised we deprecated an RPC and so will make a PR to remove it and make it error to avoid unexpected behavior during mixed version upgrade scenarios.
@biazmoreira The one thing you mentioned that I didn't get to was that we potentially missed some of the
group-alias
endpoints in the original PR. I took a quick look and it certainly does look like there are a couple of code paths there that get to doing anUpsertGroup
which will no longer forward at the RPC level and are potentially even more broken than before because of that by #29483. Could you take a look? We can include that in this PR if so.TODO
TODO only if you're a HashiCorp employee
backport/
label that matches the desired release branch. Note that in the CE repo, the latest release branch will look likebackport/x.x.x
, but older release branches will bebackport/ent/x.x.x+ent
.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.
in the PR description, commit message, or branch name.
description. Also, make sure the changelog is in this PR, not in your ENT PR.
Overview of commits