Nuke/Deadline Integration

Hello,

I trying to setup a Nuke/Deadline integration within my environment for Mac users. We have:
our fiber group (those who connect to our SAN via StorNext), that have the SAN mounted on. We also have another group (those who do not have fiber stations), connecting to our SAN via NFS.

We have a 20 node, Maya render farm running in conjunction with a Vray engine. The hardware is from Boxx Technologies with 12Gbs of RAM for each node & running Windows Server 2008 in terms of a operating system. Also, I am running Deadline 4.0 to render-wrangle the farm.

As a test, I took one node (#20) & upgraded it to Deadline 4.1. This version better supports Nuke. I was able to send a test job to Nuke to see if the integration helped. The issue is that the Nuke job goes through & at first it appears to be rendering, then it starts to error. If I refresh the job, it vacillates between rendering & erroring every few seconds. I checked the error logs from the node & this is what I receive:

“Exception during render: An error occurred in RenderTasks(): Error in RenderExecutable(): 64 bit Nuke 6 render executable could not be found in the semicolon separated list “/Applications/Nuke6.2v2/Nuke6.2v2.app/Contents/MacOS/Nuke6.2v2”. The path to the render executable can be configured from the Plugin Configuration in the Deadline Monitor.
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)”

Gerard

Hi Gerard,

It looks like you just need to configure the Nuke plugin in Deadline to include the correct path to the Nuke executable as it exists on your render nodes. Currently, this is the only path in the list:

/Applications/Nuke6.2v2/Nuke6.2v2.app/Contents/MacOS/Nuke6.2v2

Does that exact path exist on the render node that is reporting the error? If it is, do you know if that’s a 32 or 64 bit installation of Nuke? The reason I ask is that the error says Deadline is looking for a 64 bit version, so if that executable is not 64-bit, that explains the error. A workaround would be to just select “None” as the build of Nuke to use, since Deadline won’t check for bitness in that case.

Cheers,

  • Ryan

Hey Ryan,

Our render farm is PC based, while the stations attempting to render on the farm are Mac based, so I have added both Nuke paths for plugin configuration:

Windows:
C:\Program Files\Nuke6.2v2\Nuke6.2.exe
&
Mac:
/Applications/Nuke6.2v2/Nuke6.2v2.app/Contents/MacOS/Nuke6.2v2".

I ran another test job, but the same outcome occurred (Files appear to render, errors, repeat).

Here is the the error log:
exception during render: An error occurred in RenderTasks(): [16:11.14] ERROR: Write1: Can’t write, no such directory
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)

Gerard

It seems that you have a problem with mis-match directory naming between Windows and OS X. You can configure that in the Repository Options.

Can you post a full log from the job that contains this error? You can find the logs by right-clicking on the job and selecting Job Reports -> View Log Reports. That will help put the error in better context so that we can provide suggestions on what to do next.

Thanks!

  • Ryan

Hey Ryan,

Here is the log from the job:

Log Message
0: Task timeout is disabled.
0: Loaded job: deadline_test_v01.nk (999_001_999_77047ad1)
0: INFO: StartJob: initializing script plugin Nuke
0: INFO: About: Nuke Plugin for Deadline
0: INFO: Prepping OFX cache
0: INFO: Checking Nuke temp path: C:\Users\Administrator\AppData\Local\Temp\nuke
0: INFO: Path already exists
0: INFO: OFX cache prepped
0: Plugin rendering frame(s): 1-10
0: INFO: Any stdout that matches the regular expression “READY FOR INPUT” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “.ERROR:.” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “.Error:.” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “.* seconds to execute” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “.* took [0-9].[0-9] seconds” will be handled as appropriate
0: INFO: Stdout Handling Enabled: True
0: INFO: Popup Handling Enabled: True
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Render Executable: “C:\Program Files\Nuke6.2v2\Nuke6.2.exe”
0: INFO: Render Argument: -V -x “C:\Users\Administrator\AppData\Local\Temp\deadline_test_v01_thread0.nk” 1,10
0: INFO: Startup Directory: “C:\Program Files\Nuke6.2v2”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Nuke 6.2v2, 64 bit, built Jan 20 2011.
0: STDOUT: Copyright © 2010 The Foundry Visionmongers Ltd. All Rights Reserved.
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/init.tcl
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/init.py
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/setenv.tcl
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/Tracker3.dll
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/formats.tcl
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/getenv.tcl
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/Noise.dll
0: STDOUT: Loading C:/Program Files/Nuke6.2v2/plugins/sgiWriter.dll
0: STDOUT: Writing /Volumes/MO_SAN_WORKING/THELAB/Jep Deadline Test/noise.0001.sgi
0: STDOUT: Writing /Volumes/MO_SAN_WORKING/THELAB/Jep Deadline Test/noise.0001.sgi took 0.00 seconds
0: STDOUT: [10:19.35] ERROR: Write1: Can’t write, no such directory
0: STDOUT: Total render time: 0.00 seconds
0: STDOUT: Write1: Can’t write, no such directory

Log Details
Log Date/Time = Mar 09/11 10:19:36
Frames = 1-10

Slave Machine = Lab-ny-rnd-20
Slave Version = v4.1.0.43205 R

Plugin Name = Nuke

Gerard

Hey Ryan,

I have also uploaded screenshots of my path translations based on your previous question. Thanks.

Gerard
Screen shot 2011-03-09 at 4.18.59 PM.png
Screen shot 2011-03-09 at 4.17.03 PM.png

I’ve kind of continued this in our internal ticket system. Feels very much like a mapped drive script issue + windows executable path problem.

Hi , same problem here, i’m doing simple test using 2 Mac ( osx leopard), both slave are up and ready to render (idle), let’s name them MAC-A and MAC-B. The case : i put project on workstation 1 (MAC - A) , then submit to deadline, i saw the job in the list, so MAC-A is working fine, but for every frame sent to MAC-B is fail : write1: Can’t write, no such directory. Now i’m testing moving the project to workstation 2 (MAC-B), then after submitting, now MAC-A is fail to finish the job with same error. But MAC-B is now working fine. I got all the image coz when one of them fail of course the job will be handled by other slave. So the slave can only render the project which is reside in its local HD. I check the repo and both can access with RW , so nothing is wrong with the repository. Only the job can be handled by local slave. It might be something wrong with the deadline connection. My lan connection is ok, coz i can run other render manager like qmaster and muster without problemoo.

Btw i got other case :
case #2 :
i can’t use submittodeadline.py -> IOERROR [errno 0] err
i open that .py script , try to inspect , finally i found the problem came from the line :

pools = [] stdout = os.popen( deadlineCommand + " -pools" ) for line in stdout: pools.append( line.replace( "\n", "" ) ) stdout.close()

it fail to do the loop (“for line in stdout”), i check the terminal, try to run command from there (“deadlinecommand -pools”). I got error :

X does not support your locale Gtk not found (missing LD_LIBRARY_PATH to libgtk-x11-2.0.so.0?), using built-in colorscheme none

so this error output is sent to stdout which is bring this kind of error. So my question where can i get the GTK thing ?? i’m using snow leopard and try to install xcode as well try to deal with the library files but no luck.

Thanx

Hi there,

Just to confirm, are all the assets that your Nuke file users on a local drive? If so, that would explain why the job will only render on the machine that the local assets are on. These assets (as well as the output path you use) need to be on a shared location that both your machines have access to. The Mapped Path feature would only help if the assets are already on a shared location, and the path that each machine uses to access this shared location is different.

For the submission error, try applying this patch:
viewtopic.php?f=57&t=4394

That should fix the error you’re seeing.

Cheers,

  • Ryan

Hi Ryan, thanx for fast reply , about the asset , i didn’t use any asset at all, i’m just doing very simple test. So The nuke project is involve no footage at all or any other resources. It just simply create an internal checkerboard inside nuke and directly apply write node … i know that asset could drag me into this problem , so that’s why i reduce that possibility by creating a very very simple project without any external footage/media. Even with this simple thing , i still got that error. If i really need to distribute the media/footage/rushes/clip etc… i don’t know what to be done, coz there’s none of them is included in my project. I recheck my project , it also didin’t use any plugins or something like that, it just very-very standard project.

Do i need to copy the project it self then save it on each slave ? i think by turning on the ‘submit nuke script file with job’, it means Deadline will do it for me. The documentation said so, am i right? only when i turn it off then i need to manually copy the project file and ditribute it across the farm. Did i miss something here ?

Btw thanx a lot for the link. I’ll have a look, let’s see if i can make it work :slight_smile:

Thanx

Thanks for confirming that! Is the output path that your Nuke file is using local to one of the machines? If so, that could explain the error as well. It would probably be best to simply send us one of the error reports generated for the job. Just right-click on it in the Monitor and select Job Reports → View Error Reports.

Nope, that’s not necessary. We’ll take a look at the error report you send us and hopefully that will help pinpoint the problem.

Thanks!

  • Ryan

Hi Ryan, thanx i found out what’s to be the real problem :slight_smile:
it’s the output path. The slave which has been failed , it didn’t have the correct path for the output, i found that the shared folder (output path on server) is failed to mount. I forgot previously change/rename the shared OUTPUT folder so the mounting has been broken. So i just fix by re-mounting the output path to point to folder on server/network. Now everything is working smooth. :slight_smile:
Thanx a lot for the support.

cheers