Aws-sam-cli: sam build not able to clear out .aws-sam folder

Created on 28 May 2020  路  5Comments  路  Source: aws/aws-sam-cli

Description

When I try to re-run sam build --use-container I seem to need to wait an indeterminate length of time before it will work again.

I either receive:

OSError: [WinError 145] The directory is not empty: '.aws-sam\\build'

or

PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\CustomMetricDeliveryCloudwatchFunction'

The OSError happens first, and then every time after that, until it finaly works again I receive the PermissionError

Steps to reproduce

  1. sam build --use-container
  2. sam local invoke
  3. sam build --use-container

Observed result

> sam build --use-container
Starting Build inside a container
Traceback (most recent call last):
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
    cli(prog_name="sam")
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 96, in wrapped
    raise exception  # pylint: disable=raising-bad-type
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 62, in wrapped
    return_value = func(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
    mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
    mode=mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
    self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
    shutil.rmtree(build_dir)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 404, in _rmtree_unsafe
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 402, in _rmtree_unsafe
OSError: [WinError 145] The directory is not empty: '.aws-sam\\build'
> sam build --use-container --debug
Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
'build' command is called
Starting Build inside a container
No Parameters detected in the template
2 resources found in the template
Found Serverless function with name='CustomMetricDeliveryCloudwatchFunction' and CodeUri='cloudwatch_metric_delivery/'
No Parameters detected in the template
Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'duration': 82, 'exitReason': 'PermissionError', 'exitCode': 255, 'requestId': '45bd311d-8076-44b1-bff8-25b15bda4642', 'installationId': '70ce78ee-79f5-4ef9-867e-02893e68d012', 'sessionId': 'e404098b-88c9-4f95-ba3c-e65ec6a99505', 'executionEnvironment': 'CLI', 'pyversion': '3.7.6', 'samcliVersion': '0.52.0'}}]}
HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Traceback (most recent call last):
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
    cli(prog_name="sam")
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 96, in wrapped
    raise exception  # pylint: disable=raising-bad-type
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 62, in wrapped
    return_value = func(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
    mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
    mode=mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
    self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
    shutil.rmtree(build_dir)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 395, in _rmtree_unsafe
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 377, in _rmtree_unsafe
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 374, in _rmtree_unsafe
PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\CustomMetricDeliveryCloudwatchFunction'

Expected result

A buillt version of the container

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

  1. OS: Windows 10 - Version 10.0.18363 Build 18363
  2. sam --version: SAM CLI, version 0.52.0 64bit

Most helpful comment

Seems like it might be a Docker Desktop issue. I just restarted it and was able to build

All 5 comments

Seems like it might be a Docker Desktop issue. I just restarted it and was able to build

Closing for now, it's definitely been observed that Windows and Docker don't always get along, including on the matter of file permissions. Please feel free to reopen if this issue recurs.

I created a bug on the Docker side if anyone is interested https://github.com/docker/for-win/issues/6938

The problem still exists for the newer version of Docker and SAM CLI - just for sam build (even without --use-container).

I also have a problem with sam build, and it is occuring every time once sam local invoke was called:

$ sam build
Traceback (most recent call last):
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
    cli(prog_name="sam")
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 148, in wrapped
    raise exception  # pylint: disable=raising-bad-type
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 114, in wrapped
    return_value = func(*args, **kwargs)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
    mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
    mode=mode,
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
    self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
  File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
    shutil.rmtree(build_dir)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 395, in _rmtree_unsafe
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 377, in _rmtree_unsafe
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 374, in _rmtree_unsafe
PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\HelloWorldFunction'
$ docker --version
Docker version 19.03.12, build 48a66213fe
$ sam --version
SAM CLI, version 1.2.0
Was this page helpful?
0 / 5 - 0 ratings

Related issues

debuggins picture debuggins  路  4Comments

jpbarto picture jpbarto  路  4Comments

asyba picture asyba  路  3Comments

goldenbearkin picture goldenbearkin  路  3Comments

Inkromind picture Inkromind  路  4Comments