PermissionError: [WinError 5] Access is denied if using build multithreads > 3
Open
shijunjing
opened this issue 7 years ago
•
7 comments
Hello,
I'm enabling the clcache in the Uefi firmware MSVC build toolchain. I've enable thed ccache in our GCC/CLang toolchains and I hope the clcache can work in our MSVC toolchain as well.
I built the clcache through the pyinstaller and I directly hard code the clcache_main.exe as my firmware VS2015 build CL and build in VS2015 cmd environment. My firmware build is driven by Uefi python build script. In my testing, I found if I build with single thread or threads <= 3, the clcache can work well. However, if I build with threads > 4, the clcache will raise the PermissionError: [WinError 5] Access is denied, below is an example. The more threads I use, the easier this issue raise.
Is there any missing configure in my build steps? Any suggestion is appreciated.
[11116] Failed to execute script clcache_main
Traceback (most recent call last):
File "clcache_main.py", line 2, in
File "site-packages\clcache_main_.py", line 1589, in main
File "site-packages\clcache_main_.py", line 1616, in processCompileRequest
File "site-packages\clcache_main_.py", line 1668, in scheduleJobs
File "concurrent\futures_base.py", line 425, in result
File "concurrent\futures_base.py", line 384, in get_result
File "concurrent\futures\thread.py", line 57, in run
File "site-packages\clcache_main.py", line 1689, in processSingleSource
File "site-packages\clcache_main.py", line 1719, in processDirect
File "site-packages\clcache_main_.py", line 1507, in processCacheHit
File "site-packages\clcache_main_.py", line 749, in exit
File "site-packages\clcache_main_.py", line 659, in save
File "contextlib.py", line 119, in exit
File "site-packages\atomicwrites_init_.py", line 159, in open
File "site-packages\atomicwrites_init.py", line 190, in commit
File "site-packages\atomicwrites_init_.py", line 93, in replace_atomic
File "site-packages\atomicwrites_init_.py", line 75, in replace_atomic
File "site-packages\atomicwrites_init.py", line 70, in _handle_errors
PermissionError: [WinError 5] Access is denied.
NMAKE : fatal error U1077: 'C:\steven\clcache-fork\pyinstaller\dist\clcache_main\clcache_main.exe' : return code '0xffffffff'
Stop.
Moving clcache dir out of user profile dir doesn't work for me. I moved the C:\steven\clcache-fork\pyinstaller\dist\clcache_main\ to C:\clcache_main, and the build still fail with threads > 4. Below is the failure log:
[7000] Failed to execute script clcache_main
Traceback (most recent call last):
File "clcache_main.py", line 2, in
File "site-packages\clcache_main_.py", line 1589, in main
File "site-packages\clcache_main_.py", line 1616, in processCompileRequest
File "site-packages\clcache_main_.py", line 1668, in scheduleJobs
File "concurrent\futures_base.py", line 425, in result
File "concurrent\futures_base.py", line 384, in get_result
File "concurrent\futures\thread.py", line 57, in run
File "site-packages\clcache_main.py", line 1689, in processSingleSource
File "site-packages\clcache_main.py", line 1719, in processDirect
File "site-packages\clcache_main_.py", line 1507, in processCacheHit
File "site-packages\clcache_main_.py", line 749, in exit
File "site-packages\clcache_main_.py", line 659, in save
File "contextlib.py", line 119, in exit
File "site-packages\atomicwrites_init_.py", line 159, in open
File "site-packages\atomicwrites_init.py", line 190, in commit
File "site-packages\atomicwrites_init_.py", line 93, in replace_atomic
File "site-packages\atomicwrites_init_.py", line 75, in replace_atomic
File "site-packages\atomicwrites_init.py", line 70, in _handle_errors
PermissionError: [WinError 5] Access is denied.
NMAKE : fatal error U1077: 'C:\clcache_main\clcache_main.exe' : return code '0xffffffff'
Stop.