This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2019年07月01日 20:35 by earonesty, last changed 2022年04月11日 14:59 by admin. This issue is now closed.
| Messages (3) | |||
|---|---|---|---|
| msg347073 - (view) | Author: Erik Aronesty (earonesty) * | Date: 2019年07月01日 20:35 | |
Depending on the user's permissions, this code can hang, instead of raising an exception: from tempfile import NamedTemporaryFile NamedTemporaryFile(dir="/") The problamatic code is in tempfile.py: When encountering a "[Errno 13] Permission denied: '/tmpmcupmo_g'", the current code uses _os.access(dir, _os.W_OK) in two places to check if access is allowed to write to the directory. On windows, _os.access does not check if the user has permission to write to the folder, it only checks if the folder is read-only (and it doesn't even do a good job at that). So the temp file creator loops for a rather long time, and consumes a massive amount of system resources, because os.TMP_MAX on modern windows versions is 2147483647. This article explains how to check if a directory can-write without trying to write to it: http://blog.aaronballman.com/2011/08/how-to-check-access-rights/ Alternatively, a more careful check of the winerror return value from the open call *might* be sufficient. |
|||
| msg347074 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2019年07月01日 21:07 | |
Perhaps a duplicate of Issue 22107? |
|||
| msg347075 - (view) | Author: Erik Aronesty (earonesty) * | Date: 2019年07月01日 21:09 | |
yes, duplicate of https://bugs.python.org/issue22107 ... tried looking first, sry. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:59:17 | admin | set | github: 81658 |
| 2019年07月01日 21:30:09 | martin.panter | set | superseder: tempfile module misinterprets access denied error on Windows resolution: duplicate |
| 2019年07月01日 21:09:52 | earonesty | set | status: open -> closed messages: + msg347075 stage: resolved |
| 2019年07月01日 21:07:32 | martin.panter | set | nosy:
+ martin.panter messages: + msg347074 |
| 2019年07月01日 20:35:29 | earonesty | set | type: crash |
| 2019年07月01日 20:35:15 | earonesty | create | |