AWS Thinkbox Discussion Forums

Permission denied when running as local user

Hi everyone,

We are having an issue with a lot of our machines. We have set up Deadline to run as a user dedicated to deadline with all permissions, and we have set the SlaveDataRoot in the desktop.ini to C:/Temp/Deadline10. Yet, we often get issues on machines, where it’s trying to access six.py in a temporary folder in the dedicated deadline user’s local app data folder.

This behavior is bugging us for several reasons. We have set the SlaveDataRoot, so we expect deadline not to use the local AppData folder. Furthermore, the user the job should be running as, definitely has permission to that folder. Therefore we do not understand why it fails with the error ‘Permission denied’ trying to import six.py from the local AppData folder.

Here is a log of the error:

=======================================================
Error
=======================================================
Error: Global asset transfer preload script 'C:/Temp/Deadline10\WSX7\plugins\641986d0923a82bf9d096f87\GlobalAssetTransferPreLoad.py': PermissionError : [Errno 13] Permission denied: 'C:\\Users\\deadline\\AppData\\Local\\Thinkbox\\Deadline10\\pythonAPIs\\LzpSIezHU5KgVLKWHPqCQg==\\six.py' (FranticX.Scripting.PythonNetException)
  File "C:/Temp/Deadline10\WSX7\plugins\641986d0923a82bf9d096f87\GlobalAssetTransferPreLoad.py", line 16, in <module>
    import six
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 724, in exec_module
  File "<frozen importlib._bootstrap_external>", line 859, in get_code
  File "<frozen importlib._bootstrap_external>", line 916, in get_data
   at Python.Runtime.Runtime.CheckExceptionOccurred()
   at Python.Runtime.PythonEngine.ModuleFromString(String name, String code, String fileName)
   at FranticX.Scripting.PythonNetScriptEngine.ExecuteFile(String scriptFile, String moduleName, Boolean optimizeCode)
   at Deadline.Plugins.PluginWrapper.d()
   at Deadline.Plugins.PluginWrapper.StartJob(String& outMessage, AbortLevel& abortLevel)

=======================================================
Type
=======================================================
RenderPluginException

=======================================================
Stack Trace
=======================================================
   at Deadline.Plugins.SandboxedPlugin.d(DeadlineMessage bgo, CancellationToken bgp)
   at Deadline.Plugins.SandboxedPlugin.StartJob(Job job, CancellationToken cancellationToken)
   at Deadline.Slaves.SlaveRenderThread.c(TaskLogWriter ajt, CancellationToken aju)

=======================================================
Log
=======================================================
2023-03-21 11:28:34:  0: Loading Job's Plugin timeout is Disabled
2023-03-21 11:28:34:  0: SandboxedPlugin: Render Job As User enabled, running as user 'deadline', which is defined in the User Settings for this job's user
2023-03-21 11:28:36:  0: Executing plugin command of type 'Initialize Plugin'
2023-03-21 11:28:36:  0: INFO: Executing plugin preload script: 'C:/Temp/Deadline10\WSX7\plugins\641986d0923a82bf9d096f87\PluginPreLoad.py'
2023-03-21 11:28:36:  0: The command completed successfully.
2023-03-21 11:28:36:  0: The command completed successfully.
2023-03-21 11:28:36:  0: The command completed successfully.
2023-03-21 11:28:36:  0: INFO: Executing plugin script 'C:/Temp/Deadline10\WSX7\plugins\641986d0923a82bf9d096f87\CommandLine.py'
2023-03-21 11:28:36:  0: INFO: Plugin execution sandbox using Python version 3
2023-03-21 11:28:36:  0: INFO: Single Frames Only: False
2023-03-21 11:28:36:  0: INFO: About: Command Line Plugin for Deadline
2023-03-21 11:28:36:  0: INFO: The job's environment will be merged with the current environment before rendering
2023-03-21 11:28:36:  0: Done executing plugin command of type 'Initialize Plugin'
2023-03-21 11:28:36:  0: Start Job timeout is disabled.
2023-03-21 11:28:36:  0: Task timeout is disabled.
2023-03-21 11:28:36:  0: Loaded job: S107_SQ010_SH030.zip (641986d0923a82bf9d096f87)
2023-03-21 11:28:36:  0: Successfully mapped P: to //dumpap3/production
2023-03-21 11:28:36:  0: Executing plugin command of type 'Start Job'
2023-03-21 11:28:36:  0: DEBUG: S3BackedCache Client is not installed.
2023-03-21 11:28:36:  0: INFO: Executing global asset transfer preload script 'C:/Temp/Deadline10\WSX7\plugins\641986d0923a82bf9d096f87\GlobalAssetTransferPreLoad.py'
2023-03-21 11:28:36:  0: Done executing plugin command of type 'Start Job'

=======================================================
Details
=======================================================
Date: 03/21/2023 11:28:40
Frames: 0
Elapsed Time: 00:00:00:06
Job Submit Date: 03/21/2023 11:28:32
Job User: deadline
Average RAM Usage: 16690868224 (25%)
Peak RAM Usage: 16690868224 (25%)
Average CPU Usage: 5%
Peak CPU Usage: 13%
Used CPU Clocks (x10^6 cycles): 6593
Total CPU Clocks (x10^6 cycles): 131855

=======================================================
Worker Information
=======================================================
Worker Name: WSX7
Version: v10.2.0.10 Release (3b87216c7)
Operating System: Windows 10 Pro
Running As Service: Yes
Machine User: deadline
IP Address: 192.168.0.131
MAC Address: 00:D8:61:75:46:12
CPU Architecture: x64
CPUs: 16
CPU Usage: 8%
Memory Usage: 15.5 GB / 63.9 GB (24%)
Free Disk Space: 118.800 GB 
Video Card: NVIDIA GeForce RTX 2060 SUPER

Any help or insight is much appreciated. Hope you all have a nice day.

Hello @Mads_Hangaard

Thanks for reaching out. SlaveDataRoot only keeps jobsData and plugin when there is a job dequeued by Worker these directories get populated. While the AppData/Local/Thinkbox/… gets the copy of Application Data all the time if Deadline is running. I do not think you can change this location.

For the error you are getting, usually the reason is that the running Worker doesn’t have permission to access the contents of the active pythonAPIs directory or the directory doesn’t exist.

Below is the workaround:

This can happen when the Worker’s local storage has a mix of permissions due to being started under different users. Basically this means that the Worker doesn’t have permission to read the PythonAPI files under the current user. The fix is to stop the Worker then empty the Thinkbox\Deadline10\pythonAPIs directory. Then when the Worker gets started it’ll copy the files with permissions it can use.

1 Like

Thank you, we ended up deleting the folder on all the machines, and it seems to have worked. Thank you.

1 Like
Privacy | Site terms | Cookie preferences