[MtoA] Getting Deadline to pick up environment variable changes


Here’s why new environment variable settings (like, say, a new solidangle_LICENSE setting) are not always picked up by Deadline:

procmon_deadline_child_processes

Deadline Slave and MayaBatch are child processes of Deadline Launcher, and so they inherit their environment from their parent process (deadlinelauncherservice). If you don’t restart the Launcher, it won’t have the new environment, and neither will child processes like the Monitor or MayaBatch. Restarting the service will restart the child processes too.

deadlinelauncherservice_restart

However, if you didn’t install the Launcher as a service, it is slightly more complicated. When you exit and restart the Launcher, the child processes may end up as “orphans” with the same old environment, and you’ll have to restart them too. In the screenshot below, Deadline Monitor and Deadline Slave were child processes of Launcher, but when I exited Launcher they kept running.

procmon_orphans

[MtoA] Deadline and MtoA 1.0.x


Update: Deadline 6.1 and later support MtoA 1.0.x

Recently I discovered that Deadline 6.0 doesn’t work with MtoA 1.0.x, and it’s because of a change to the MtoA verbosity levels controls in the Render Settings UI. I think an update for Deadline will soon take care of this problem.

This is the error that stops everything:

0: WARNING: Strict error checking on, ignoring the following unrecognized error or warning. If it is fatal, please email support@thinkboxsoftware.com with the error message.
0: STDOUT: Error: No object matches name: defaultArnoldRenderOptions.log_console_verbosity

At first, I “ignored” that error in the log, but after I eliminated all other possible causes, I came back to it.

I worked around it by editing the default MayaBatch.py file in the DeadlineRepository (on my machine, that’s here: C:\DeadlineRepository6\plugins\MayaBatch\MayaBatch.py).

Go to lines 910, 911, and 912, and change lines 911 and 912 to look like this:

elif self.Renderer == "arnold" or self.Renderer == "arnoldexport":
self.Verbosity = self.GetPluginInfoEntryWithDefault( "ArnoldVerbose", "2" )
return 'removeRenderLayerAdjustmentAndUnlock defaultArnoldRenderOptions.log_verbosity; catch(`setAttr defaultArnoldRenderOptions.log_verbosity ' + self.Verbosity + '`);'

When you submit a job, make sure you set the Arnold verbosity level to 0, 1, or 2. Nothing higher.