Skip to content

Improve error handling for existing directories - #429

Open
AdamWillden wants to merge 1 commit into
aws:mainfrom
AdamWillden:patch-1
Open

AdamWillden wants to merge 1 commit into
aws:mainfrom
AdamWillden:patch-1

Conversation

@AdamWillden

@AdamWillden AdamWillden commented Sep 18, 2026

Copy link
Copy Markdown

Handle the case where a directory is created concurrently by another deployment without treating it as an error.

With the move to CodeDeploy Agent v2 and its support for concurrent deployments, we are experiencing failures during the Install step when multiple deployments attempt to create the same directory at the same time.

In our case, three deployments run simultaneously and copy files into separate destinations beneath a shared nested directory structure that does not initially exist. Each deployment determines that the shared parent directory needs to be created and queues a directory creation command. If another deployment creates that directory before the command is executed, fs::create_dir returns AlreadyExists, causing the deployment to fail.

This change treats AlreadyExists as successful when the existing path is a directory. The directory is only written to the cleanup file when it was created by the current deployment, ensuring that a deployment does not subsequently attempt to clean up a directory created by another deployment.

Issue #, if available: - no issue raised yet

Description of changes: - see above

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Handle the case where a directory is created concurrently by another deployment without treating it as an error.

With the move to CodeDeploy Agent v2 and its support for concurrent deployments, we are experiencing failures during the Install step when multiple deployments attempt to create the same directory at the same time.

In our case, three deployments run simultaneously and copy files into separate destinations beneath a shared nested directory structure that does not initially exist. Each deployment determines that the shared parent directory needs to be created and queues a directory creation command. If another deployment creates that directory before the command is executed, fs::create_dir returns AlreadyExists, causing the deployment to fail.

This change treats AlreadyExists as successful when the existing path is a directory. The directory is only written to the cleanup file when it was created by the current deployment, ensuring that a deployment does not subsequently attempt to clean up a directory created by another deployment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant