Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: add workaround for Windows permissions error
We were getting errors like `PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\resume.md_k098zhaj\\CrashpadMetrics-active.pma'` and `Exception ignored in: <finalize object at 0x16d9e039d60; dead> ... NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\resume.md_3aoun3f2\\CrashpadMetrics-active.pma'` in CI on Windows. See e.g. https://github.com/mikepqr/resume.md/runs/5172290981 and https://github.com/mikepqr/resume.md/runs/5172234014. The root cause was that Chrome creates a file the python process does not have permission to delete. See puppeteer/puppeteer#2778. Because TemporaryDirectory is intended to be used as a context manager there is no way to prevent it logging an error when cleanup fails. The fix is to switch to the lower level tempfile.mkdtemp, and make a good faith attempt to clean it up manually, logging failure at the debug level (while adding a new --debug option). A more sophisticated fix would be to backport the new ignore_cleanup_errors option added in python 3.10 (python/cpython#24793), but this will do. Fixes #13
- Loading branch information