Message255254
| Author |
martin.panter |
| Recipients |
Hans Lawrenz, martin.panter |
| Date |
2015年11月24日.08:39:42 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1448354382.71.0.39317937893.issue25717@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Thanks for the strace output. I think the actual error is the fstat() call a bit after that first open() call. FileNotFoundError is ENOENT:
open("/vagrant/tmpy5ioznh4", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0600) = 4
unlink("/vagrant/tmpy5ioznh4") = 0
fstat(4, 0x7ffc0b326520) = -1 ENOENT (No such file or directory)
close(4) = 0
write(2, "Traceback (most recent call last"..., 35Traceback (most recent call last):
My theory is that the fstat() call at <https://hg.python.org/cpython/annotate/3.5/Modules/_io/fileio.c#l441> is failing, probably because the file entry has been removed from its directory. This call was added by revision 3b5279b5bfd1 (Issue 21679). Before this change, fstat() was called twice, but in each case an error was tolerated.
Posix does not mention fstat() returning this ENOENT error, so maybe this could be a bug with the Virtual Box or Vagrant driver for the mounted filesystem. But it might be nice to make Python more permissive if fstat() fails, like it was in 3.4.
As a workaround, you may be able to use NamedTemporaryFile, if you are happy for the file to have a name and a directory entry. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2015年11月24日 08:39:42 | martin.panter | set | recipients:
+ martin.panter, Hans Lawrenz |
| 2015年11月24日 08:39:42 | martin.panter | set | messageid: <1448354382.71.0.39317937893.issue25717@psf.upfronthosting.co.za> |
| 2015年11月24日 08:39:42 | martin.panter | link | issue25717 messages |
| 2015年11月24日 08:39:42 | martin.panter | create |
|