Bug #6715
closed
Dir.mktmpdir fails if you delete it yourself
Added by mitchellh (Mitchell Hashimoto) about 12 years ago.
Updated about 12 years ago.
Description
Dir.mktmpdir when given a block will call FileUtil.remove_entry_secure
in the ensure section. If the contents of the block happens to move/delete/modify that folder, then that will fail with Errno::ENOENT. I believe the correct behavior in this case should be to successfully return, since the folder is clearly gone in some way.
2012/7/10 mitchellh (Mitchell Hashimoto) mitchell.hashimoto@gmail.com:
Dir.mktmpdir when given a block will call FileUtil.remove_entry_secure
in the ensure section. If the contents of the block happens to move/delete/modify that folder, then that will fail with Errno::ENOENT. I believe the correct behavior in this case should be to successfully return, since the folder is clearly gone in some way.
I think such application may remove another application's temporary
directory unintentionally.
After you remove the directory, another application may create a
directory with same name.
Then Dir.mktmpdir {} removes that.
If an application itself removes a temporary directory, Dir.mktmpdir
without a block should be used.
It avoids the problem above because Dir.mktmpdir without a block
doesn't remove the directory anyway.
Tanaka Akira
- Status changed from Open to Rejected
Also available in: Atom
PDF
Like0
Like0Like0