[issue7443] test.support.unlink issue on Windows platform
report at bugs.python.org
Sun Dec 6 00:09:05 CET 2009
Andrew Svetlov <andrew.svetlov at gmail.com> added the comment:
You right, problem is not in os.unlink (Windows call DeleteFile) itself.
I have TortoiseSVN (very popular Explorer extension to work with
This tool run TSVNCache.exe process to update own data in background.
TSVNCache.exe receive NotifyChangeDirectory events for svn checkout
support.TESTFN is tempfile name in current working directory. If I try
to run unittests from some folder from python checkout TSVNCache.exe get
change notify and analyze it.
So, sometimes I can see race condition:
- python: os.unlink(file)
- TSVNCache.exe: get change event
- TSVNCache.exe: query changes
- python: open(file) - oops, TSVNCache.exe still processing notification
and lock deleted file by holding opened handles to it.
According to MSDN for DeleteFile function:
The DeleteFile function marks a file for deletion on close. Therefore,
the file deletion does not occur until the last handle to the file is
closed. Subsequent calls to CreateFile to open the file fail with
We get exactly same.
- TSVNCache.exe finish of change update and release handle. File is
I see this situation in sysinternals Process Monitor tool.
Probability of race condition is tiny but non-zero. Intensive
create/drop/create again sequences can catch this one.
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list