#8479 closed (duplicate)
Race condition in core.files.storage.py, leads to crash
Reported by: | aubonbeurre | Owned by: | nobody |
---|---|---|---|
Component: | File uploads/storage | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
This seems related to #4948, but not quite, so I opened a new ticket.
Line 148:
# This file has a file path that we can move.
if hasattr(content, 'temporary_file_path'):
file_move_safe(content.temporary_file_path(), full_path)
content.close()
This should be inverted:
# This file has a file path that we can move.
if hasattr(content, 'temporary_file_path'):
content.close()
file_move_safe(content.temporary_file_path(), full_path)
The code throws an exception, because it ends-up to copy-then-delete, since in my particular case src and dest are not on the same file system.
It will fail on Windows, and I suspect this is particular to NTFS (although I did not test on other platforms): it is not possible to remove an opened file.
Change History (5)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
And I forgot to mention that the effect is that, because os.unlink(src) fails deep in the code, it will keep appending '_' till the name is too long. Then it will fail for good.
comment:3 by , 16 years ago
Component: | Core framework → File uploads/storage |
---|
comment:4 by , 16 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
better formatting...
Should change to: