summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Borean <jborean93@gmail.com>2023-04-13 06:09:19 +1000
committerGitHub <noreply@github.com>2023-04-12 15:09:19 -0500
commit7da4a992391230cfaad10fbf87dbb69f920f943d (patch)
tree08f78ed6c22ef4a1e18ee2483205090395abfdb4
parent0f1c165196de1245bcb4226667f7566c6abd2cf4 (diff)
downloadansible-7da4a992391230cfaad10fbf87dbb69f920f943d.tar.gz
Improve Ansible.Basic.cs tempdir uniqueness (#80328) (#80331)
* Improve Ansible.Basic.cs tempdir uniqueness The current tempdir naming scheme can result in the same name if the remote worker starts at the same time as another. By using the process id it should add enough uniqueness to avoid this situation. * Fix sanity issues * Fix up compile issue on older hosts (cherry picked from commit fb6b90fe4255e9995706905e2a9cde205648c0d2)
-rw-r--r--changelogs/fragments/ansible-basic-tmpdir-uniqueness.yml2
-rw-r--r--lib/ansible/module_utils/csharp/Ansible.Basic.cs3
2 files changed, 4 insertions, 1 deletions
diff --git a/changelogs/fragments/ansible-basic-tmpdir-uniqueness.yml b/changelogs/fragments/ansible-basic-tmpdir-uniqueness.yml
new file mode 100644
index 0000000000..0240949563
--- /dev/null
+++ b/changelogs/fragments/ansible-basic-tmpdir-uniqueness.yml
@@ -0,0 +1,2 @@
+bugfixes:
+- Windows - Ensure the module temp directory contains more unique values to avoid conflicts with concurrent runs - https://github.com/ansible/ansible/issues/80294
diff --git a/lib/ansible/module_utils/csharp/Ansible.Basic.cs b/lib/ansible/module_utils/csharp/Ansible.Basic.cs
index c68281ef1b..16480992e8 100644
--- a/lib/ansible/module_utils/csharp/Ansible.Basic.cs
+++ b/lib/ansible/module_utils/csharp/Ansible.Basic.cs
@@ -176,7 +176,8 @@ namespace Ansible.Basic
}
string dateTime = DateTime.Now.ToFileTime().ToString();
- string dirName = String.Format("ansible-moduletmp-{0}-{1}", dateTime, new Random().Next(0, int.MaxValue));
+ string dirName = String.Format("ansible-moduletmp-{0}-{1}-{2}", dateTime, System.Diagnostics.Process.GetCurrentProcess().Id,
+ new Random().Next(0, int.MaxValue));
string newTmpdir = Path.Combine(baseDir, dirName);
#if CORECLR
DirectoryInfo tmpdirInfo = Directory.CreateDirectory(newTmpdir);