harmony submission script

Is there a way to skip an error code using the harmony submission script

STDOUT: Missing texture file …
STDOUT: file does not exists …

I would like the render to still continu.

Thanks

Hello,

We don’t currently have any error handling in the plugin for Harmony, but I can put in an issue with the devs to add in some optional error handling. Just a note, though, those two errors will generally mean that your render will not come out as expected due to missing assets. Can you send over a full job report so we can see the full context of these errors? Thanks.

That’s ok, if the render doesn’t come out as expected. From what all the errors I’ve seen so far are texture or elements that are not being use in the scene but are still hidden or not used.

I also had to hide some name in the log due to nda. But the rest should be good.

Would be great if we can tell the submission to skip, Missing texture file and Colour Override error.


=======================================================
Error
=======================================================
Error: Renderer returned non-zero error code, 12. Check the log for more information.
  at Deadline.Plugins.PluginWrapper.RenderTasks (System.String taskId, Int32 startFrame, Int32 endFrame, System.String& outMessage, FranticX.Processes.AbortLevel& abortLevel) <0x404137e0 + 0x00d63> in <filename unknown>:0 

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

=======================================================
Stack Trace
=======================================================
  at Deadline.Plugins.Plugin.RenderTask (System.String taskId, Int32 startFrame, Int32 endFrame) <0x404133f0 + 0x0018f> in <filename unknown>:0 
  at Deadline.Slaves.SlaveRenderThread.a (Deadline.IO.TaskLogWriter A_0) <0x4040c000 + 0x0223a> in <filename unknown>:0 

=======================================================
Log
=======================================================
2016-09-28 13:02:12:  BEGIN - *****.******.****.***\root
2016-09-28 13:02:12:  0: INFO: Executing plugin script '/tmp/Thinkbox/Deadline8/slave/*****/plugins/57ebee571ef3423050df0c36/Harmony.py'
2016-09-28 13:02:12:  0: INFO: About: Harmony Render Plugin for Deadline
2016-09-28 13:02:12:  0: INFO: The job's environment will be merged with the current environment before rendering
2016-09-28 13:02:12:  0: Start Job timeout is disabled.
2016-09-28 13:02:12:  0: Task timeout is disabled.
2016-09-28 13:02:12:  0: Loaded job: ******* *****-101 239 ver: 27 *******-20160928 (57ebee571ef3423050df0c36)
2016-09-28 13:02:12:  0: Plugin rendering frame(s): 99
2016-09-28 13:02:12:  0: INFO: Stdout Redirection Enabled: True
2016-09-28 13:02:12:  0: INFO: Asynchronous Stdout Enabled: False
2016-09-28 13:02:12:  0: INFO: Stdout Handling Enabled: True
2016-09-28 13:02:12:  0: INFO: Popup Handling Enabled: True
2016-09-28 13:02:12:  0: INFO: QT Popup Handling Enabled: False
2016-09-28 13:02:12:  0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2016-09-28 13:02:12:  0: INFO: Using Process Tree: True
2016-09-28 13:02:12:  0: INFO: Hiding DOS Window: True
2016-09-28 13:02:12:  0: INFO: Creating New Console: False
2016-09-28 13:02:12:  0: INFO: Running as user: root
2016-09-28 13:02:12:  0: INFO: Executable: "/usr/local/ToonBoomAnimation/harmonyPremium_14/lnx86_64/bin/HarmonyPremium"
2016-09-28 13:02:12:  0: INFO: Argument: -batch -res 1920 1080 31.42 -camera T_Camera -frames 99 99 -env ****** -job ****** -scene 239 -version 27 -preRenderScript "/tmp/Thinkbox/Deadline8/slave/3dren65/jobsData/57ebee571ef3423050df0c36/thread0_tempIDqYF0/preRenderScript.txt"
2016-09-28 13:02:12:  0: INFO: Full Command: "/usr/local/ToonBoomAnimation/harmonyPremium_14/lnx86_64/bin/HarmonyPremium" -batch -res 1920 1080 31.42 -camera T_Camera -frames 99 99 -env ****** -job ****** -scene 239 -version 27 -preRenderScript "/tmp/Thinkbox/Deadline8/slave/3dren65/jobsData/57ebee571ef3423050df0c36/thread0_tempIDqYF0/preRenderScript.txt"
2016-09-28 13:02:12:  0: INFO: Startup Directory: "/usr/local/ToonBoomAnimation/harmonyPremium_14/lnx86_64/bin"
2016-09-28 13:02:12:  0: INFO: Process Priority: BelowNormal
2016-09-28 13:02:12:  0: INFO: Process Affinity: default
2016-09-28 13:02:12:  0: INFO: Process is now running
2016-09-28 13:02:12:  0: STDOUT: Toon Boom Harmony Premium
2016-09-28 13:02:12:  0: STDOUT: Harmony Premium (HarmonyPremium) version 14.0.1 build 11593 2016-08-08 13:43:31
2016-09-28 13:02:12:  0: STDOUT: Preference file not found: /root/Toon Boom Animation/localpref
2016-09-28 13:02:12:  0: STDOUT: The database server is an old version.
2016-09-28 13:02:13:  0: STDOUT: ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so
2016-09-28 13:02:13:  0: STDOUT: Starting mailbox server [58512]
2016-09-28 13:02:13:  0: STDOUT: Initializing OpenExr IO Framework
2016-09-28 13:02:13:  0: STDOUT: No CL Platforms detected
2016-09-28 13:02:13:  0: STDOUT: OFXHost Validation and plugin cache generation started...
2016-09-28 13:02:13:  0: STDOUT: OFXHost Validation Completed.
2016-09-28 13:02:13:  0: STDOUT: Initializing RenderMan DTex Io Framework
2016-09-28 13:02:13:  0: STDOUT: Initializing Collada IO Framework
2016-09-28 13:02:13:  0: STDOUT: Initializing Alembic IO Framework
2016-09-28 13:02:13:  0: STDOUT: Initializing Fbx IO Framework
2016-09-28 13:02:14:  0: STDOUT: Could not acquire the scene asset lock for "/usadata0/*******/scene-239/" as other versions of this scene are locked.
2016-09-28 13:02:14:  0: STDOUT: .
2016-09-28 13:02:14:  0: STDOUT: Toon Boom Harmony Premium
2016-09-28 13:02:14:  0: STDOUT: MediaServer (MediaServer) version 14.0.1 build 11593 2016-08-08 13:43:31
2016-09-28 13:02:14:  0: STDOUT: ALSA lib dlmisc.c:236:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so
2016-09-28 13:02:19:  0: STDOUT: Colour Override Top/**********/***********/**************/********_Colour-Override_2 cannot find palette /USA_DB/jobs/****-101/palette-library/*******.plt.

2016-09-28 13:02:21:  0: STDOUT: dbaccess (Lock busy): 239
2016-09-28 13:02:21:  0: STDOUT: Warning... could not acquire scene lock. Will open in read-only mode.
2016-09-28 13:02:21:  0: STDOUT: Loading script: /tmp/Thinkbox/Deadline8/slave/*****/jobsData/57ebee571ef3423050df0c36/thread0_tempIDqYF0/preRenderScript.txt
2016-09-28 13:02:21:  0: STDOUT: file does not exists (/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/0722348bba286dcd.tga)
2016-09-28 13:02:21:  0: STDOUT: Missing texture file [/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/0722348bba286dcd.tga]
2016-09-28 13:02:21:  0: STDOUT: file does not exists (/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/073246d63d713d35.tga)
2016-09-28 13:02:21:  0: STDOUT: Missing texture file [/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/073246d63d713d35.tga]
2016-09-28 13:02:21:  0: STDOUT: file does not exists (/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/0733333650200d15.tga)
2016-09-28 13:02:21:  0: STDOUT: Missing texture file [/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/0733333650200d15.tga]
2016-09-28 13:02:21:  0: STDOUT: file does not exists (/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/073d70da7a70351c.tga)
2016-09-28 13:02:21:  0: STDOUT: Missing texture file [/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/073d70da7a70351c.tga]
2016-09-28 13:02:21:  0: STDOUT: file does not exists (/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/07363275e5f0b34f.tga)
2016-09-28 13:02:21:  0: STDOUT: Missing texture file [/USA_DB/jobs/****-101/palette-library/penstyle_opacity_textures/07363275e5f0b34f.tga]
2016-09-28 13:02:32:  0: STDOUT: Write /usadata0/****-101/scene-239/frames/****_101_239x-0099.sgi
2016-09-28 13:02:32:  0: STDOUT: Rendered frame 99
2016-09-28 13:02:32:  0: STDOUT: Return Error code: 12
2016-09-28 13:02:33:  0: INFO: Process exit code: 12


Hmm. It looks the problem is twofold: one, it might be that we’re catching the output as errors and failing the job (doesn’t seem to be the case from that log report).

The second thing is that Harmony is exiting with code -12…

Are there any scripting staff there? You can override the exit code as a test to see if that would work for you. We’d need to know if “-12” is reliably an asset problem before adding it as a feature, or we could do what we do in Maya for “ignore exit code 211”.

Here’s an example snippet of how to ignore an exit code (taken from MayaCmd.py):

    def __init__( self ):
        # other stuff goes here...
        
        self.CheckExitCodeCallback += self.CheckExitCode
    
    def Cleanup(self):
        # other stuff goes here...
        
        del self.CheckExitCodeCallback


    def CheckExitCode( self, exitCode ):
        if exitCode != 0:
            if exitCode == 206:
                self.FailRender( "Maya could not parse the command line. Two common causes for this are using the wrong project directory, or using a drive root ( i.e. \"c:\\\" ) as the output directory." )
            elif ( exitCode == 211 and self.IgnoreError211 ):
                self.LogInfo( "Renderer reported an error with error code 211. This will be ignored, since the option to ignore it is specified in the Job Properties." );
            else:
                self.FailRender( "Renderer returned non-zero error code %d. Check the renderer's output." % exitCode )

Can’t seem to find the exit code in the folder \plugins\Harmony\Harmony.py about the same place where plugins\MayaCmd\MayaCmd.py is located.

You’d need to add it in.

I should be able to patch it in pretty quickly. What exact version are you using? You’ll be able to find out from the “About” window in the Monitor.

Thanks a lot, I got it to work. That error my be special for just a short moment on couple episodes we are working on.

Maybe we could had in future Deadline version an Advance Option tab in the Harmony submit Job. Just like maya.

Adding a “ignore color-override = error code 12”
One for “ignore File does not exists = error code 100”

Those are the 2 code ive added for now for us.

Another option we would like too add is a new renderArguments i’ve added my self in harmony.py “-readonly” right after

renderArguments = "-batch"

Version: 8.0.7.3 Release (f33fcb7d3)

for anyone else who runs into this we added the following snippet in the Harmony python file. This issue presented itself on the Harmony 17 builds:

    #manage error codes
    del self.CheckExitCodeCallback

def CheckExitCode( self, exitCode ):
    if exitCode != 0:
        if exitCode == 100:
            self.LogInfo( "Renderer reported an error with error code 100. This will be ignored, since the option to ignore it is specified in the Job Properties." )
        else:
            self.FailRender( "Renderer returned non-zero error code %d. Check the renderer's output." % exitCode )
1 Like