Deadline Slave on CentOS question

Sorry if it’s a bit basic. Still new to Deadline on Linux. Our IT had installed Deadline Client 10.0.24 on CentOS 7.7 and I’m trying to figure out how to get them working. I only have SSH access to the machines.

  1. After installation, the slave shows up off-line in monitor with correct OS/RAM/CPU information. We can also restart deadline service with command systemctl restart deadline10launcher.service

  2. While the launcher starts automatically on boot, the slave does not. We already add the line to deadline.ini:LaunchSlaveAtStartup=true, and it is also set in Auto Configuration applying to all IP in the Repository Settings, still does not work. (auto config works for Windows slave)

  3. I can start the slave manually doing sudo /opt/Thinkbox/Deadline10/bin/deadlineslave -nogui

3.1. Is sudo to be expected here? Without it it says it cannot write log files and terminate the process.

3.2. Running such command would lock up the terminal. Is there a way to run it without locking up the terminal?

Any help appreciate. Thanks.

I’ll try to match your numbers here.

  1. I’d bet there’s something amiss with the worker being able to phone home. Check out the application logs in /var/log/Thinkbox/Deadline10 for clues. Or share them here if you’re comfortable with that.

  2. I’m betting this has to do with #3 as opposed to you mis-configuring the .ini file.

  3. The Worker shouldn’t need root, but whatever user account its running as will need to have read/write permissions for whatever directories it will need to touch while running renders. Stuff like wherever the file share is, as well as /var/log/Thinkbox/Deadline10 so it can write logs.

  4. My Linux skills are badly in need of polish, but you should be able to run that command with screen or tmux and have the Worker carry on. Or you could run it as a daemon per this info in the docs.

Let us know if you’ve got more questions, I think I’ve got you covered though.

Thank you for your response. I’m having problem setting permission for the log folder.

sudo chmod 755 -R /var/log/Thinkbox/Deadline10

Afterwards when trying to launch slave still getting this error

  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0025f] in <a8460a77e67a430a8486a9751162e5f4>:0
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) [0x00000] in <a8460a77e67a430a8486a9751162e5f4>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at FranticX.Diagnostics.Tracing.TraceLogWriter.GetCurrentLog (System.Boolean& logUpdated) [0x0009b] in <85e46ca3be904c128237fd94bbe625d1>:0
  at FranticX.Diagnostics.Tracing.TraceLogWriter.b () [0x0008d] in <85e46ca3be904c128237fd94bbe625d1>:0
  at FranticX.Diagnostics.Tracing.TraceLogWriter.Flush () [0x00001] in <85e46ca3be904c128237fd94bbe625d1>:0
  at DeadlineSlave.DeadlineSlaveApp.c (System.Int32 a, System.String b, System.Boolean c) [0x00074] in <469eb1f8b4c143589e52da113c227d69>:0
  at DeadlineSlave.DeadlineSlaveApp.Main (System.String[] args) [0x00b10] in <469eb1f8b4c143589e52da113c227d69>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.UnauthorizedAccessException: Access to the path "/var/log/Thinkbox/Deadline10/deadlineslave-pc-11-028-2019-11-06-0000.log" is denied.
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0025f] in <a8460a77e67a430a8486a9751162e5f4>:0
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) [0x00000] in <a8460a77e67a430a8486a9751162e5f4>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at FranticX.Diagnostics.Tracing.TraceLogWriter.GetCurrentLog (System.Boolean& logUpdated) [0x0009b] in <85e46ca3be904c128237fd94bbe625d1>:0
  at FranticX.Diagnostics.Tracing.TraceLogWriter.b () [0x0008d] in <85e46ca3be904c128237fd94bbe625d1>:0
  at FranticX.Diagnostics.Tracing.TraceLogWriter.Flush () [0x00001] in <85e46ca3be904c128237fd94bbe625d1>:0
  at DeadlineSlave.DeadlineSlaveApp.c (System.Int32 a, System.String b, System.Boolean c) [0x00074] in <469eb1f8b4c143589e52da113c227d69>:0
  at DeadlineSlave.DeadlineSlaveApp.Main (System.String[] args) [0x00b10] in <469eb1f8b4c143589e52da113c227d69>:0

Update - chmod 755 did not work but 777 did the trick. Since it’s a log directory I guess 777 is ok?

Not only the slaves are starting, they also able to update themselves as per repository settings now. Very cool.

You should be alright with 777, though 775 might work alright.

The installer should have taken care of all this for you, but you weren’t the one who ran it right? If you check out the installer log which can be in a couple of places on Linux. That might have some errors logged that might explain any other oversights in your installation.

But if the Workers are talking to the Repository, it’s time to start rendering! Let us know if you have any questions about that!

1 Like

I ran into the next problem - JobPreload does not run on Linux.

JobPreload.py

from System import *
from System.IO import *

def __main__(deadlinePlugin):
    print '[_jobPreload.py_] print ======== JobPreload: START ========'   
    deadlinePlugin.LogInfo('[_jobPreload.py_] loginfo ======== JobPreload: START ========')

That’s all there is to this file. Both lines showed up in Windows log:

2019-11-07 15:07:54:  0: PYTHON: [_jobPreload.py_] print ======== JobPreload: START ========
2019-11-07 15:07:54:  0: INFO: [_jobPreload.py_] loginfo ======== JobPreload: START ========

However Linux job log does not contain these 2 lines. I tested permission and can verify that Linux user account has read access to the file.

I realize it’s been a week, have you made any progress?

I really wouldn’t expect Linux to fail here. Could you try running your JobPreLoad.py with Deadline’s Python? It lives at “$DEADLINE_PATH/dpython” on Linux. That should run your __main__ and hopefully print some good error message to point us in the right direction.

Hi Justin.

We got JobPreLoad working now. We didn’t capitalize the L at first. It worked in Windows so we were never aware of such typo. Was a surprise.

At the moment we are having problem with other issue. Maya’s 2016’s Alembic plugin not working with dirmap is our main issue atm.

I didn’t even think to look at that!

As for dirmap not behaving, if you’re comfortable could you share a job report where the path mapping isn’t taking place? Or feel free to open a ticket with us at support.thinkboxsoftware.com if you’re not interested in scrubbing a log free of any identifying file names.

In the meantime, in the MayaBatch plugin configuration in the Monitor you could try text-replace to see if that at least gets you working again. That’s under Tools->Configure Plugins->Path Mapping Mode. That might cause other plugins not to be mapped, but it’s worth a shot.