AWS Thinkbox Discussion Forums

Houdini Jobs Problem [7.2 beta3] [SOLVED]

Hi there

we have a problem with the latest Deadline beta with Houdini 14.0.395.

This is the error that can be found in the logs.

2015-07-28 16:37:04: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 2015-07-28 16:37:06: Scheduler Thread - Synchronizing job auxiliary files from /repo7/jobs/55b792fe5007ff2e9a4d8699 2015-07-28 16:37:06: Scheduler Thread - All job files are already synchronized 2015-07-28 16:37:10: Constructor: Houdini 2015-07-28 16:37:10: 0: Start Job timeout is disabled. 2015-07-28 16:37:10: 0: Task timeout is disabled. 2015-07-28 16:37:10: 0: Loaded job: leg_sand_setup_v25_006_volchev.hip - /out/volchev_for_HQ/dust/cache_src_pnts (55b792fe5007ff2e9a4d8699) 2015-07-28 16:37:10: 0: INFO: Executing plugin script /home/remote/rendernode/Thinkbox/Deadline7/slave/rn20/plugins/55b792fe5007ff2e9a4d8699/Houdini.py 2015-07-28 16:37:10: 0: INFO: About: Houdini Plugin for Deadline 2015-07-28 16:37:10: 0: INFO: The job's environment will be merged with the current environment before rendering 2015-07-28 16:37:10: 0: Plugin rendering frame(s): 1083 2015-07-28 16:37:18: 0: INFO: Starting Houdini Job 2015-07-28 16:37:18: 0: INFO: Stdout Redirection Enabled: True 2015-07-28 16:37:18: 0: INFO: Asynchronous Stdout Enabled: True 2015-07-28 16:37:18: 0: INFO: Stdout Handling Enabled: True 2015-07-28 16:37:18: 0: INFO: Popup Handling Enabled: True 2015-07-28 16:37:18: 0: INFO: QT Popup Handling Enabled: False 2015-07-28 16:37:18: 0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False 2015-07-28 16:37:18: 0: INFO: Using Process Tree: True 2015-07-28 16:37:18: 0: INFO: Hiding DOS Window: True 2015-07-28 16:37:18: 0: INFO: Creating New Console: False 2015-07-28 16:37:18: 0: INFO: Running as user: rendernode 2015-07-28 16:37:20: Scheduler Thread - Render Thread 0 threw a major error: 2015-07-28 16:37:20: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2015-07-28 16:37:20: Exception Details 2015-07-28 16:37:20: RenderPluginException -- Error: UnboundLocalError : local variable 'houdiniExe' referenced before assignment (Python.Runtime.PythonException) 2015-07-28 16:37:20: File "none", line 71, in RenderExecutable 2015-07-28 16:37:20: at Deadline.Plugins.ScriptPlugin.RenderTasks (System.String taskId, Int32 startFrame, Int32 endFrame, System.String& outMessage, FranticX.Processes.AbortLevel& abortLevel) [0x00000] in <filename unknown>:0 2015-07-28 16:37:20: RenderPluginException.Cause: JobError (2) 2015-07-28 16:37:20: RenderPluginException.Level: Major (1) 2015-07-28 16:37:20: RenderPluginException.HasSlaveLog: True 2015-07-28 16:37:20: RenderPluginException.SlaveLogFileName: /var/log/Thinkbox/Deadline7/deadlineslave_renderthread_0-rn20-0000.log 2015-07-28 16:37:20: Exception.HResult: -2146233088 2015-07-28 16:37:20: Exception.Source: deadline 2015-07-28 16:37:20: Exception.TargetSite: Void RenderTask(System.String, Int32, Int32) 2015-07-28 16:37:20: Exception.Data: ( ) 2015-07-28 16:37:20: Exception.StackTrace: 2015-07-28 16:37:20: at Deadline.Plugins.Plugin.RenderTask (System.String taskId, Int32 startFrame, Int32 endFrame) [0x00000] in <filename unknown>:0 2015-07-28 16:37:20: at Deadline.Slaves.SlaveRenderThread.a (Deadline.IO.TaskLogWriter A_0) [0x00000] in <filename unknown>:0 2015-07-28 16:37:20: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Now I have found out that there is a script which is copied to the rendernodes home folder in /home/<deadline_username>/Thinkbox/Deadline7/slave/<rendernode_hostname>/plugins/<some_gibberish_(job_id?)>/Houdini.py
in which you guys state that if( houdiniExe == “” ) houdiniExe should be assigned a value. The thing is houdiniExe doesn’t exist before you compare it with an empty string. I think that simply adding houdiniExe = “” before the if or removing the if should fix this. So if this is truly the problem I would like to know from where this script is copied to the home folder so I can change this. I was unable to find it in the repository.

All best,
Damjan

Hey Damjan,

Thanks for reporting this! We actually discovered this issue last week, and it will be fixed in beta 4.

Cheers,
Ryan

Can you please tell me if the fix I mentioned is plausible and if it is point me to the file so I can make the change in order to have a working Houdini setup until the new beta release?

The fix is to simply add the houdiniExe = “” line above the “if SystemUtils.IsRunningOnWindows():” check in the RenderExecutable function. Here’s what that function should look like after:

    def RenderExecutable( self ):
        version = self.GetPluginInfoEntryWithDefault( "Version", "14" )
        build = self.GetPluginInfoEntryWithDefault( "Build", "none" ).lower()
        houdiniExeList = self.GetConfigEntry( "Houdini" + version + "_Hython_Executable" )
        
        if( SystemUtils.IsRunningOnLinux() ):
            houdiniExeList = houdiniExeList.replace( "hython", "hython-bin" )
        
        houdiniExe = ""
        if SystemUtils.IsRunningOnWindows():
            if( build == "32bit" ):
                self.LogInfo( "Enforcing 32 bit build" )
                houdiniExe = FileUtils.SearchFileListFor32Bit( houdiniExeList )
                if( houdiniExe == "" ):
                    self.LogWarning( "Houdini " + version + " hython 32 bit executable was not found in the semicolon separated list \"" + houdiniExeList + "\". Checking for any executable that exists instead." )
            elif( build == "64bit" ):
                self.LogInfo( "Enforcing 64 bit build" )
                houdiniExe = FileUtils.SearchFileListFor64Bit( houdiniExeList )
                if( houdiniExe == "" ):
                    self.LogWarning( "Houdini " + version + " hython 64 bit executable was not found in the semicolon separated list \"" + houdiniExeList + "\". Checking for any executable that exists instead." )
            
        if( houdiniExe == "" ):
            houdiniExe = FileUtils.SearchFileList( houdiniExeList );
            if( houdiniExe == "" ):
                self.FailRender( "Houdini " + version + " hython executable was not found in the semicolon separated list \"" + houdiniExeList + "\". The path to the render executable can be configured from the Plugin Configuration in the Deadline Monitor." )
        
        if( SystemUtils.IsRunningOnLinux() ):
            houdiniExe = houdiniExe.replace( "hython-bin", "hython" )
        
        return houdiniExe

The file you want to modify is Houdini.py, and it can be found in \your\repository\plugins\Houdini.

Hope that helps!

Thanks Ryan, that did the trick!

Privacy | Site terms | Cookie preferences