diff options
author | John Keiser <jkeiser@opscode.com> | 2013-10-15 08:36:35 -0700 |
---|---|---|
committer | John Keiser <jkeiser@opscode.com> | 2013-10-15 08:36:35 -0700 |
commit | c6081bbad60e5d81d1db5a5e82cc66d28ec083ec (patch) | |
tree | bbc5aefef8b29fe3c7bd523a25e0f52e4cb37794 /lib/chef/chef_fs/file_system | |
parent | 59e15c6268d99ed2f97cc39dddf17d844ca63d9b (diff) | |
download | chef-c6081bbad60e5d81d1db5a5e82cc66d28ec083ec.tar.gz |
Fix issue where multiple threads try to create same directory at the same time
Diffstat (limited to 'lib/chef/chef_fs/file_system')
-rw-r--r-- | lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb | 5 | ||||
-rw-r--r-- | lib/chef/chef_fs/file_system/file_system_entry.rb | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb b/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb index eb825d0485..1cfc15d757 100644 --- a/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +++ b/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb @@ -51,7 +51,10 @@ class Chef def create_child(name, file_contents = nil) child_paths[name].each do |path| - Dir.mkdir(path) + begin + Dir.mkdir(path) + rescue Errno::EEXIST + end end child = make_child_entry(name) @children = nil diff --git a/lib/chef/chef_fs/file_system/file_system_entry.rb b/lib/chef/chef_fs/file_system/file_system_entry.rb index 8b6549a664..e9ece366b5 100644 --- a/lib/chef/chef_fs/file_system/file_system_entry.rb +++ b/lib/chef/chef_fs/file_system/file_system_entry.rb @@ -51,7 +51,10 @@ class Chef if file_contents child.write(file_contents) else - Dir.mkdir(child.file_path) + begin + Dir.mkdir(child.file_path) + rescue Errno::EEXIST + end end @children = nil child |