AWS Thinkbox Discussion Forums

Deadline 6 Beta - Composite 2013 plugin is broken

Hello,

Looks like the workflow to submit new render jobs via the Composite 2013 plugin is broken, when using the Deadline 6 Beta Monitor interface (v6.0.0.50509 R) under Windows 7 Professional. Any render jobs submitted via this plugin will fail with a fatal error.

Here are the steps to reproduce:

  1. In the Deadline Monitor UI, open the widget for a new Composite submission via the menu: Submit -> CompositeSubmission

  2. Fill out the fields and submit the new job to deadline. You will get a confirmation message as something like:

Deadline Monitor 6.0 [v6.0.0.50509 R]

Submitting to Repository: \deadline\blah

Submission Contains the Following:

  1. Auxiliary File #1 ("[PluginPathHere]/composite_plugin_info.job")
  2. Auxiliary File #2 ("[ProjectPathHere]/abc.txproject")
  3. Auxiliary File #3 ("[CompositionPathHere]/xyz.txcomposition")

Result=Success
JobID=51420596dddf740f14d325cb

The job was submitted successfully.

  1. Under the Job Monitor tab, you will see a recurring error for the first frame as the following:

=======================================================
Error

Error in CheckExitCode: Renderer returned non-zero error code, 3. Check the log for more information.
at Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage, AbortLevel& abortLevel)

=======================================================
Type

RenderPluginException

=======================================================
Stack Trace

at Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.a(TaskLogWriter A_0)

=======================================================
Full Log

0: Task timeout is disabled.
0: Loaded job: test_composite (51420596dddf740f14d325cb)
0: INFO: Executing plugin script [PathToSlaveWorkstation]\plugins\Composite.py
0: INFO: About: Autodesk Composite Plugin for Deadline
0: INFO: The current environment will be used for rendering
0: Plugin rendering frame(s): 1
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:[PathToComposite]\txrender.exe”
0: INFO: Render Argument: -p “[PathToSlaveWorkstation]\jobsData\abc.txproject” -c “[PathToSlaveWorkstation]\jobsData\abc.txproject” -v “SomeCompositionVersionHere.txcomposition” -s 1 -e 100 -userfilepath “[PathToSlaveWorkstation]\jobsData\xyz.txcomposition”
0: INFO: Startup Directory: “[PathToCompositeStartupDirectory]”
0: INFO: Process Priority: BelowNormal
0: INFO: Process Affinity: default
0: INFO: Process is now running
0: INFO: Process exit code: 3

From the log above, the arguments given to the Composite txrender.exe command are not being set correctly. From the txrender.exe documentation:

txrender Usage:
-p,-project : Project path.
-v,-version : Name of version to render.
-userfilepath : User file path. (default: C:/blah/Preferences.txuser)
-c,-composition : Opens the specified composition.

I have traced the source of this error to the following file in the Deadline repository:

\plugins\Composite\Composite.py: (lines 47 - 63)

def RenderArgument( self ):
    auxiliaryFilenames = self.GetAuxiliaryFilenames()
    
    # Common arguments
    projectFile = self.GetDataFilename()
    arguments = " -p \"" + projectFile + "\""
    arguments += " -c \"" + auxiliaryFilenames[0] + "\""		
    arguments += " -v \"" + self.GetPluginInfoEntry( "CompositionVersion" ) + "\""
    arguments += " -s " + str(self.GetStartFrame())
    arguments += " -e " + str((self.GetEndFrame() + 1))
    
    # If a users ini file was given use that
    if len(auxiliaryFilenames) > 1:
        userfile = auxiliaryFilenames[1]
        arguments += " -userfilepath \"" + userfile + "\""
    
    return arguments

Apparently the index used to reference the “auxiliaryFilenames” collection is offset by 1. The following updated code will assemble the correct arguments for the Composite txrender.exe command:

def RenderArgument( self ):
    auxiliaryFilenames = self.GetAuxiliaryFilenames()

    # Common arguments
    projectFile = self.GetDataFilename()
    arguments = " -p \"" + projectFile + "\""
    arguments += " -c \"" + auxiliaryFilenames[1] + "\""		
    arguments += " -v \"" + self.GetPluginInfoEntry( "CompositionVersion" ) + "\""
    arguments += " -s " + str(self.GetStartFrame())
    arguments += " -e " + str((self.GetEndFrame() + 1))
    
    # If a users ini file was given use that
    if len(auxiliaryFilenames) > 2:
        userfile = auxiliaryFilenames[2]
        arguments += " -userfilepath \"" + userfile + "\""
    
    return arguments

Re-submitting the job in the Monitor UI will now result in a successful render.

Cheers,

Parmjit V.
Software Developer

Thanks for tracking this down and providing the fix! We changed some of the underlying auxiliary file handling code, so it completely makes sense that there would have been an offset problem there.

We’ll include this fix in beta 16.

Thanks again!

  • Ryan
Privacy | Site terms | Cookie preferences