From f6b6491623b8f0bf7c49181f73e4482c64593886 Mon Sep 17 00:00:00 2001 From: Ian Ferguson Date: Tue, 9 Feb 2021 17:46:01 -0500 Subject: [PATCH] fix deadlock condition in identity create+merge calls --- vault/identity_store_entities.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vault/identity_store_entities.go b/vault/identity_store_entities.go index efa1e51bda43..b68f69889530 100644 --- a/vault/identity_store_entities.go +++ b/vault/identity_store_entities.go @@ -164,6 +164,9 @@ func (i *IdentityStore) pathEntityMergeID() framework.OperationFunc { force := d.Get("force").(bool) // Create a MemDB transaction to merge entities + i.lock.Lock() + defer i.lock.Unlock() + txn := i.db.Txn(true) defer txn.Abort() @@ -172,7 +175,7 @@ func (i *IdentityStore) pathEntityMergeID() framework.OperationFunc { return nil, err } - userErr, intErr := i.mergeEntity(ctx, txn, toEntity, fromEntityIDs, force, true, false, true) + userErr, intErr := i.mergeEntity(ctx, txn, toEntity, fromEntityIDs, force, false, false, true) if userErr != nil { return logical.ErrorResponse(userErr.Error()), nil }