aws / aws-lambda-builders

Python library to compile, build & package AWS Lambda functions for several runtimes & framework
Apache License 2.0
337 stars 139 forks source link

Receiving error trying to update amazon.lambda.tools global tool when running two sam build commands concurrently #205

Open nickdurcholz opened 3 years ago

nickdurcholz commented 3 years ago

Description:

Receiving error from sam build when building a dotnet core 3.1 lambda function on a CI build server that is running more than one agent.

Error: DotnetCliPackageBuilder:GlobalToolInstall - Error configuring the Amazon.Lambda.Tools .NET Core Global Tool: Dotnet CLI Failed: Tool 'amazon.lambda.tools' failed to update due to the following:

Failed to uninstall tool 'amazon.lambda.tools': Failed to retrieve tool configuration: The process cannot access the file 'C:\Users\CruiseControl\.dotnet\tools\.store\amazon.lambda.tools\4.3.0\amazon.lambda.tools\4.3.0\tools\netcoreapp2.1\any\DotnetToolSettings.xml' because it is being used by another process.

Steps to reproduce the issue:

  1. Create a SAM project that includes a lambda with the dotnetcore3.1 runtime
  2. Create two different workspaces with the same code on your machine
  3. run sam build concurrently until the file locking issue is encountered

Additional environment details (Ex: Windows, Mac, Amazon Linux etc) observed on a windows build host

This seems related to #126 and would likely be resolved by #127 as well. Is there any timeline for releasing that change?

sriram-mv commented 3 years ago

https://github.com/aws/aws-lambda-builders/pull/214 should fix this.

CoshUS commented 2 years ago

214 does not address the issue since locking is only implemented for single process. This issue is due to multiple sam builds running at the same time. Reopening.