Skip to content

With many highly parallel calls to Register- or Unegister-SecretVault they don't register/unregister, presumedly due to failing parallel write access to vaultinfo file #246

@co-xpts

Description

@co-xpts

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues.

Steps to reproduce

With many highly parallel calls to Register-SecretVault or Unegister-SecretVault they don't register/unregister, presumedly due to failing parallel write access to %LOCALAPPDATA%\Microsoft\PowerShell\secretmanagement\secretvaultregistry\vaultinfo file.

Suggestion

Redesign to not use one shared vaultinfo file. Instead use multiple files with guid based naming, one for each registered vault so they less likely conflict with each other.
Get-SecretVault would iterate over the files.
Register-SecretVault and Unegister-SecretVault would only ever write to or delete their 'own' files

Expected behavior

Register-SecretVault ... myvault12345 ...
-> Registers vault

Get-Secret ... from myvault12345 ...
-> returns secret via myvault12345

Actual behavior

Register-SecretVault ... myvault12345 ...
-> Registers vault

Get-Secret ... from myvault12345 ...
-> Error: Get-Secret : Vault not found in registry: myvault12345

Error details

Environment data

Name                           Value
----                           -----
PSVersion                      5.1.26100.32860
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.26100.32860
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Version

Microsoft.PowerShell.SecretManagement 1.1.2

Visuals

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions