AWS Thinkbox Discussion Forums

Pre software (eg. Houdini) launch hook to launch it in venv

Hi, is there a way to make Deadline launch eg. Houdini when submitting a rendering job to it inside virtual environment? I’m trying to avoid forking your submitter to add this feature. I don’t see it in the “Submit Houdini Job to Deadline” plugin.

I added this as a Pre-frame script in python:

from venv import create
from os.path import join, expanduser, abspath
from subprocess import run
import subprocess
import os, sys

venvDir = join(expanduser("~"), ".venv")

# Check if the directory exists
if not os.path.exists(venvDir):
    # If it doesn't exist, create the virtual environment
    create(venvDir, with_pip=True)
    print("Virtual environment created successfully at", venvDir)
else:
    print("Virtual environment already exists at", venvDir)

# Activate the venv
venv_activate_script = os.path.join(venvDir, "Scripts", "activate")
subprocess.run([venv_activate_script], shell=True)

It runs in the midst of Deadline job (5th line from the bottom), here’s the Deadline Worker log:

2024-05-13 15:12:20:  0: Loading Job's Plugin timeout is Disabled
2024-05-13 15:12:20:  0: SandboxedPlugin: Render Job As User disabled, running as current user '<username>'
2024-05-13 15:12:21:  0: Executing plugin command of type 'Initialize Plugin'
2024-05-13 15:12:21:  0: INFO: Executing plugin script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664211b1f65215b1c3d716e8\Houdini.py'
2024-05-13 15:12:21:  0: INFO: Plugin execution sandbox using Python version 3
2024-05-13 15:12:21:  0: INFO: About: Houdini Plugin for Deadline
2024-05-13 15:12:21:  0: INFO: The job's environment will be merged with the current environment before rendering
2024-05-13 15:12:21:  0: Done executing plugin command of type 'Initialize Plugin'
2024-05-13 15:12:22:  0: Start Job timeout is disabled.
2024-05-13 15:12:22:  0: Task timeout is disabled.
2024-05-13 15:12:22:  0: Loaded job: KitTest - /stage/usdrender_rop2 (664211b1f65215b1c3d716e8)
2024-05-13 15:12:22:  0: Executing plugin command of type 'Start Job'
2024-05-13 15:12:22:  0: DEBUG: S3BackedCache Client is not installed.
2024-05-13 15:12:22:  0: INFO: Executing global asset transfer preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664211b1f65215b1c3d716e8\GlobalAssetTransferPreLoad.py'
2024-05-13 15:12:22:  0: INFO: Looking for legacy (pre-10.0.26) AWS Portal File Transfer...
2024-05-13 15:12:22:  0: INFO: Looking for legacy (pre-10.0.26) File Transfer controller in C:/Program Files/Thinkbox/S3BackedCache/bin/task.py...
2024-05-13 15:12:22:  0: INFO: Could not find legacy (pre-10.0.26) AWS Portal File Transfer.
2024-05-13 15:12:22:  0: INFO: Legacy (pre-10.0.26) AWS Portal File Transfer is not installed on the system.
2024-05-13 15:12:22:  0: Done executing plugin command of type 'Start Job'
2024-05-13 15:12:22:  0: Plugin rendering frame(s): 1
2024-05-13 15:12:22:  0: Executing plugin command of type 'Render Task'
2024-05-13 15:12:22:  0: INFO: Starting Houdini Job
2024-05-13 15:12:22:  0: INFO: Stdout Redirection Enabled: True
2024-05-13 15:12:22:  0: INFO: Stdout Handling Enabled: True
2024-05-13 15:12:22:  0: INFO: Popup Handling Enabled: True
2024-05-13 15:12:22:  0: INFO: QT Popup Handling Enabled: False
2024-05-13 15:12:22:  0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2024-05-13 15:12:22:  0: INFO: Using Process Tree: True
2024-05-13 15:12:22:  0: INFO: Hiding DOS Window: True
2024-05-13 15:12:22:  0: INFO: Creating New Console: False
2024-05-13 15:12:22:  0: INFO: Running as user: <username>
2024-05-13 15:12:22:  0: INFO: Executable: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe"
2024-05-13 15:12:22:  0: INFO: Argument: "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664211b1f65215b1c3d716e8\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\664211b1f65215b1c3d716e8\0_tempkTpJc0" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-13 15:12:22:  0: INFO: Full Command: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664211b1f65215b1c3d716e8\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\664211b1f65215b1c3d716e8\0_tempkTpJc0" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-13 15:12:22:  0: INFO: Startup Directory: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin"
2024-05-13 15:12:22:  0: INFO: Process Priority: BelowNormal
2024-05-13 15:12:22:  0: INFO: Process Affinity: default
2024-05-13 15:12:22:  0: INFO: Process is now running
2024-05-13 15:12:28:  0: STDOUT: Detected Houdini version: (20, 0, 625)
2024-05-13 15:12:28:  0: STDOUT: ['C:\\ProgramData\\Thinkbox\\Deadline10\\workers\\<worker name>\\plugins\\664211b1f65215b1c3d716e8\\hrender_dl.py', '-f', '1', '1', '1', '-d', '/stage/usdrender_rop2', '-tempdir', 'C:\\ProgramData\\Thinkbox\\Deadline10\\workers\\<worker name>\\jobsData\\664211b1f65215b1c3d716e8\\0_tempkTpJc0', '-arnoldAbortOnLicenseFail', '1', 'C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc']
2024-05-13 15:12:28:  0: STDOUT: Start: 1
2024-05-13 15:12:28:  0: STDOUT: End: 1
2024-05-13 15:12:28:  0: STDOUT: Increment: 1
2024-05-13 15:12:28:  0: STDOUT: Ignore Inputs: False
2024-05-13 15:12:28:  0: STDOUT: No output specified. Output will be handled by the driver
2024-05-13 15:12:28:  0: STDOUT: Driver: /stage/usdrender_rop2
2024-05-13 15:12:28:  0: STDOUT: Input File: C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc
2024-05-13 15:12:28:  0: STDOUT: WARNING: Entered limited commercial session mode.
2024-05-13 15:12:29:  0: STDOUT: Begin Path Mapping
2024-05-13 15:12:30:  0: STDOUT: b''
2024-05-13 15:12:31:  0: STDOUT: b''
2024-05-13 15:12:31:  0: STDOUT: End Path Mapping
2024-05-13 15:12:31:  0: STDOUT: ROP type: usdrender_rop
2024-05-13 15:12:31:  0: STDOUT: Rendering frame 1
**2024-05-13 15:12:31:  0: STDOUT: Virtual environment already exists at C:\Users\<username>\.venv**
2024-05-13 15:12:36:  0: STDOUT: Finished Rendering
2024-05-13 15:12:37:  0: INFO: Process exit code: 0
2024-05-13 15:12:37:  0: INFO: Finished Houdini Job
2024-05-13 15:12:37:  0: Done executing plugin command of type 'Render Task'

I’m not sure whether Houdini renders inside the activated venv though, any ideas how to launch it inside venv?

I’ve never done anything with venv in Deadline so I’m not sure how you’d confirm something was run within a venv. I’m pretty sure it wasn’t, as the render gets put into it’s own sandbox to render, so unless a virtual environment can be activated for every copy of Python that’s launched afterwards it’ll not affect things.

However! If you can wrap the call to hython with venv like this (not literally, just example):

venv_activate.sh hython.exe hrender_dl.py -flags go here

Then check out this bit on pipeline bootstrapping. That can modify the command we run, and you could have Deadline automatically wrap it.

If you check the job report, there’s a line starting with “Full Command” and you can snag that line to emulate what Deadline is doing. That’s basically what the Houdini troubleshooting steps have you do.

Let us know what you think!

Thanks, I’ve tried this and I don’t have any sort of confirmation I’m in venv (the output in the console doesn’t differ in any way from the non-venv one).

Pipeline bootstrapping looks really promising:

  1. I’ve created GlobalJobPreLoad.py file in <deadline_repo>/custom/plugins as per instructions in “Modify cmd line” in Application Plugins — Deadline 10.3.2.1 documentation (changed the else clause up top for windows’ .bat)
#!/usr/bin/env python3
import sys

from Deadline.Scripting import *
from FranticX.Diagnostics import *
#from Diagnostics import Trace2

def AlterCommandLine(executable, arguments, workingDirectory):
    print("Entering Command Line Hook")

    scriptPrefix = None

    # depending on OS, we return global valid file path to the pipeline launch bootstrap script
    if sys.platform.startswith('linux'):
        scriptPrefix = '/mnt/nfs/pipeline_launch.csh'
    elif sys.platform == 'darwin':
        scriptPrefix = '/Volumes/nfs/pipeline_launch.sh'
    #else:
        #Trace2.WriteLine("Unrecognized platform '{}'. No prefix will be added.", sys.platform)
    elif "win" in sys.platform:
        # HARDCODED
        scriptPrefix = 'C:/pipeline_launch.bat' 

    if scriptPrefix:
        # Quotes the executable if it wasn't already quoted, to ensure it gets passed as a single arg
        if not executable.startswith('"') and not executable.startswith("'"):
            executable = '"{}"'.format(executable)

        if arguments:
            arguments = executable + " " + arguments
        else:
            arguments = executable

        executable = scriptPrefix

        print("-----Modified Command Line-----")
        print(" Executable: '{}'".format(executable))
        print("  Arguments: '{}'".format(arguments))
        print("Working Dir: '{}'".format(workingDirectory))
        print("-------------------------------")

    # return the original or modified exe, args, workingDir even if pipeline not available
    return (executable, arguments, workingDirectory)

def __main__(deadlinePlugin):
    deadlinePlugin.DebugLogging = True # optional, can be commented out
    deadlinePlugin.ModifyCommandLineCallback += AlterCommandLine
  1. Made this pipeline_launch.bat (I’m working on Windows) based on “pipeline_launch.csh”:
@echo off

REM Set the PROJECT environment variable
set "PROJECT=C:\Projects\Houdini_running_OmniKit\testSceneHoudiniwLayers\KitTest.hiplc"

REM Combine PROJECT with other arguments
set "proj_args=%PROJECT%"


REM Do any pre-job processing here (e.g. sourcing VFX studio environment)

REM Sanity checks to make sure expected environment is present.
if "%PROJECT%" NEQ "" (
    REM Check if SHOT is present, and if so, append to project in args
    if not "%SHOT%"=="" (
        set "proj_args=%proj_args% "%SHOT%"
    ) else (
        echo WARNING: SHOT was not found in the environment.
    )
    
    REM Source the Project's environment.
    call "%USERPROFILE%\.venv\Scripts\activate" %proj_args%
    echo Done sourcing environment!
) else (
    echo WARNING: PROJECT was not found in the environment.
)

REM Check if virtual environment has been activated
if "%VIRTUAL_ENV%"=="" (
    echo Virtual environment not activated. Please activate the virtual environment first.
    exit /b 1
) else (
    echo Virtual environment activated: %VIRTUAL_ENV%
)

echo -----Running Command-----------------------------------
REM Run the original command
%*

REM Define the paths to the Deadline Command Line tool and the job files
set "deadline_exe=C:\Program Files\Thinkbox\Deadline10\bin\deadlinecommand.exe"
set "job_file1=C:\job.job"
set "job_file2=C:\plugin.job"
set "houdini_file=C:\KitTest.hiplc"

REM Call deadlinecommand.exe with the specified job files
"%deadline_exe%" "%job_file1%" "%job_file2%" "%houdini_file%"


set "EXIT_CODE=%ERRORLEVEL%"
echo -------------------------------------------------------

REM Do any post-job processing here.
REM Note that this might be after several Tasks have run,
REM depending on the plugin.

REM Exit with the code provided by the original command
exit /b %EXIT_CODE%

This launches the hiplc file I set as PROJECT environment variable in a new Houdini instance, which I don’t actually need but I guess it’s because I added PROJECT env var to proj_args and then execute this line:

call "%USERPROFILE%\.venv\Scripts\activate" %proj_args%

Now when I launch pipeline_launch.bat from powershell it renders in deadline through houdini and it seems it’s in venv:

=======================================================
Log
=======================================================
2024-05-14 17:18:00:  0: Loading Job's Plugin timeout is Disabled
2024-05-14 17:18:00:  0: SandboxedPlugin: Render Job As User disabled, running as current user 'm.zaras'
2024-05-14 17:18:01:  0: Executing plugin command of type 'Initialize Plugin'
2024-05-14 17:18:01:  0: INFO: Executing plugin script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\Houdini.py'
2024-05-14 17:18:01:  0: INFO: Plugin execution sandbox using Python version 3
2024-05-14 17:18:01:  0: INFO: About: Houdini Plugin for Deadline
2024-05-14 17:18:01:  0: INFO: The job's environment will be merged with the current environment before rendering
2024-05-14 17:18:01:  0: Done executing plugin command of type 'Initialize Plugin'
2024-05-14 17:18:02:  0: Start Job timeout is disabled.
2024-05-14 17:18:02:  0: Task timeout is disabled.
2024-05-14 17:18:02:  0: Loaded job: KitTest - /stage/usdrender_rop2 (664380a0f65215b1c3d7175b)
2024-05-14 17:18:02:  0: Executing plugin command of type 'Start Job'
2024-05-14 17:18:02:  0: DEBUG: S3BackedCache Client is not installed.
2024-05-14 17:18:02:  0: INFO: Executing global asset transfer preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\GlobalAssetTransferPreLoad.py'
2024-05-14 17:18:02:  0: INFO: Looking for legacy (pre-10.0.26) AWS Portal File Transfer...
2024-05-14 17:18:02:  0: INFO: Looking for legacy (pre-10.0.26) File Transfer controller in C:/Program Files/Thinkbox/S3BackedCache/bin/task.py...
2024-05-14 17:18:02:  0: INFO: Could not find legacy (pre-10.0.26) AWS Portal File Transfer.
2024-05-14 17:18:02:  0: INFO: Legacy (pre-10.0.26) AWS Portal File Transfer is not installed on the system.
2024-05-14 17:18:02:  0: INFO: Executing global job preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\GlobalJobPreLoad.py'
2024-05-14 17:18:02:  0: Done executing plugin command of type 'Start Job'
2024-05-14 17:18:02:  0: Plugin rendering frame(s): 1
2024-05-14 17:18:02:  0: Executing plugin command of type 'Render Task'
2024-05-14 17:18:02:  0: INFO: Starting Houdini Job
2024-05-14 17:18:02:  0: INFO: Stdout Redirection Enabled: True
2024-05-14 17:18:02:  0: INFO: Stdout Handling Enabled: True
2024-05-14 17:18:02:  0: INFO: Popup Handling Enabled: True
2024-05-14 17:18:02:  0: INFO: QT Popup Handling Enabled: False
2024-05-14 17:18:02:  0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2024-05-14 17:18:02:  0: INFO: Using Process Tree: True
2024-05-14 17:18:02:  0: INFO: Hiding DOS Window: True
2024-05-14 17:18:02:  0: INFO: Creating New Console: False
2024-05-14 17:18:02:  0: INFO: Running as user: m.zaras
2024-05-14 17:18:02:  0: INFO: Executable: "C:\Program Files\Side Effects Software\Houdini 19.5.805\bin\hython.exe"
2024-05-14 17:18:02:  0: INFO: Argument: "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\hrender_dl.py" -f 1 1 1 -o "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/render/Test0001.exr" -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\664380a0f65215b1c3d7175b\0_tempDRc8b0" -arnoldAbortOnLicenseFail 1 "C:/ProgramData/Thinkbox/Deadline10/workers/<worker name>/jobsData/664380a0f65215b1c3d7175b/KitTest_only_cone.hiplc"
2024-05-14 17:18:02:  0: INFO: Full Command: "C:\Program Files\Side Effects Software\Houdini 19.5.805\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\hrender_dl.py" -f 1 1 1 -o "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/render/Test0001.exr" -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\664380a0f65215b1c3d7175b\0_tempDRc8b0" -arnoldAbortOnLicenseFail 1 "C:/ProgramData/Thinkbox/Deadline10/workers/<worker name>/jobsData/664380a0f65215b1c3d7175b/KitTest_only_cone.hiplc"
2024-05-14 17:18:02:  0: INFO: Startup Directory: "C:\Program Files\Side Effects Software\Houdini 19.5.805\bin"
2024-05-14 17:18:02:  0: PYTHON: Entering Command Line Hook
2024-05-14 17:18:02:  0: PYTHON: -----Modified Command Line-----
2024-05-14 17:18:02:  0: PYTHON:  Executable: 'C:/pipeline_launch.bat'
2024-05-14 17:18:02:  0: PYTHON:   Arguments: '"C:\Program Files\Side Effects Software\Houdini 19.5.805\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\664380a0f65215b1c3d7175b\hrender_dl.py" -f 1 1 1 -o "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/render/Test0001.exr" -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\664380a0f65215b1c3d7175b\0_tempDRc8b0" -arnoldAbortOnLicenseFail 1 "C:/ProgramData/Thinkbox/Deadline10/workers/KATANA-DK-36/jobsData/664380a0f65215b1c3d7175b/KitTest_only_cone.hiplc"'
2024-05-14 17:18:02:  0: PYTHON: Working Dir: 'C:\Program Files\Side Effects Software\Houdini 19.5.805\bin'
2024-05-14 17:18:02:  0: PYTHON: -------------------------------
2024-05-14 17:18:02:  0: INFO: Process Priority: BelowNormal
2024-05-14 17:18:02:  0: INFO: Process Affinity: default
2024-05-14 17:18:02:  0: INFO: Process is now running
2024-05-14 17:18:02:  0: STDOUT: WARNING: SHOT was not found in the environment.
2024-05-14 17:18:02:  0: STDOUT: Done sourcing environment!
2024-05-14 17:18:02:  0: STDOUT: Virtual environment activated: C:\Users\m.zaras\.venv
2024-05-14 17:18:02:  0: STDOUT: -----Running Command-----------------------------------
2024-05-14 17:18:07:  0: STDOUT: Detected Houdini version: (19, 5, 805)
2024-05-14 17:18:07:  0: STDOUT: ['C:\\ProgramData\\Thinkbox\\Deadline10\\workers\\KATANA-DK-36\\plugins\\664380a0f65215b1c3d7175b\\hrender_dl.py', '-f', '1', '1', '1', '-o', 'C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/render/Test0001.exr', '-d', '/stage/usdrender_rop2', '-tempdir', 'C:\\ProgramData\\Thinkbox\\Deadline10\\workers\\<worker name>\\jobsData\\664380a0f65215b1c3d7175b\\0_tempDRc8b0', '-arnoldAbortOnLicenseFail', '1', 'C:/ProgramData/Thinkbox/Deadline10/workers/<worker name>/jobsData/664380a0f65215b1c3d7175b/KitTest.hiplc']
2024-05-14 17:18:07:  0: STDOUT: Start: 1
2024-05-14 17:18:07:  0: STDOUT: End: 1
2024-05-14 17:18:07:  0: STDOUT: Increment: 1
2024-05-14 17:18:07:  0: STDOUT: Ignore Inputs: False
2024-05-14 17:18:07:  0: STDOUT: Output: C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/render/Test0001.exr
2024-05-14 17:18:07:  0: STDOUT: Driver: /stage/usdrender_rop2
2024-05-14 17:18:07:  0: STDOUT: Input File: C:/ProgramData/Thinkbox/Deadline10/workers/<worker name>/jobsData/664380a0f65215b1c3d7175b/KitTest_only_cone.hiplc
2024-05-14 17:18:07:  0: STDOUT: WARNING: Entered limited commercial session mode.
2024-05-14 17:18:07:  0: STDOUT: Unknown command: viewcharacteropts
2024-05-14 17:18:07:  0: STDOUT: Unknown command: viewcharacteropts
2024-05-14 17:18:07:  0: STDOUT: Unknown command: viewcharacteropts
2024-05-14 17:18:07:  0: STDOUT: Unknown command: viewcharacteropts
2024-05-14 17:18:07:  0: STDOUT: Warnings were generated during load.
2024-05-14 17:18:07:  0: STDOUT: Error loading: C:/ProgramData/Thinkbox/Deadline10/workers/<worker name>/jobsData/664380a0f65215b1c3d7175b/KitTest_only_cone.hiplc
2024-05-14 17:18:07:  0: STDOUT: Warning:     
2024-05-14 17:18:07:  0: STDOUT: /stage:
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "resolvercontextstringcount".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "variantselectioncount".
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/karmarendersettings3:
2024-05-14 17:18:07:  0: STDOUT:              Unknown channel(s) "tonemapcurve1value, tonemapcurve2value, tonemapcurve3value, tonemapcurve4value, tonemapcurve5value, tonemapcurve6value, tonemapcurve7value, tonemapcurve8value, tonemapcurve9value, tonemapcurve10value, tonemapcurve11value, tonemapcurve12value, tonemapcurve13value, tonemapcurve14value, tonemapcurve15value, tonemapcurve16value, tonemapcurve17value, tonemapcurve18value, tonemapcurve19value, tonemapcurve20value, tonemapcurve21value" converted to spare parameter(s).
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/karmarendersettings3:
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "samplesfromstage".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "blurstyle".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "autoraybias".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dooutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "outputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dobeautyoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "beautyoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dobeautyunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "beautyunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "shadow".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "shadowperlpe".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "shadowfilter".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "shadowprecision".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "doshadowoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "shadowoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "docombineddiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dodirectdiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "doindirectdiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "indirectdiffuseoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "docombineddiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dodirectdiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "doindirectdiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "indirectdiffuseunshadowedoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sepparm39".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseshadow".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseshadowperlpe".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseshadowfilter".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseshadowprecision".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "docombineddiffuseshadowoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "combineddiffuseshadowoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sepparm40".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseshadow".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseshadowperlpe".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseshadowfilter".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "directdiffuseshadowprecision".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dodirectdiffuseshadowoutputcs".
2024-05-14 17:18:07:  0: STDOUT:              -- Too many errors, additional errors were suppressed. --
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/usdrender_rop2:
2024-05-14 17:18:07:  0: STDOUT:              Unknown channel(s) "outputimageshowwarning" converted to spare parameter(s).
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/usdrender_rop2:
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "outputimagewarning".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "husk_enable_headlight".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "husk_headlight".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "verbose".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "verbose_menu".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "vexprofile".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "dorenderexisting".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "renderexisting".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "resolvercontextstringcount".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "variantselectioncount".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "usdexport_group".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "filtertimesamples".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "filtertimesamplespadding".
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/domelight3:
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sample_group2".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sample_subframegroup2".
2024-05-14 17:18:07:  0: STDOUT:              
2024-05-14 17:18:07:  0: STDOUT: /stage/arealight1:
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sample_group2".
2024-05-14 17:18:07:  0: STDOUT:              Skipping unrecognized parameter "sample_subframegroup2".
2024-05-14 17:18:07:  0: STDOUT: Begin Path Mapping
2024-05-14 17:18:08:  0: STDOUT: b''
2024-05-14 17:18:09:  0: STDOUT: b''
2024-05-14 17:18:09:  0: STDOUT: End Path Mapping
2024-05-14 17:18:09:  0: STDOUT: ROP type: usdrender_rop
2024-05-14 17:18:09:  0: STDOUT: Rendering frame 1
2024-05-14 17:18:14:  0: STDOUT: Finished Rendering
2024-05-14 17:18:15:  0: STDOUT: Deadline Command 10.3 [v10.3.0.13 Release (7883f0093)]
2024-05-14 17:18:17:  0: STDOUT: Submitting to Repository: 10.22.1.2:8080
2024-05-14 17:18:17:  0: STDOUT: Submission Contains the Following Auxiliary Files:
2024-05-14 17:18:17:  0: STDOUT: 1) C:\KitTest.hiplc
2024-05-14 17:18:17:  0: STDOUT: Result=Success
2024-05-14 17:18:17:  0: STDOUT: JobID=664380b9f65215b1c3d7175d
2024-05-14 17:18:17:  0: STDOUT: The job was submitted successfully.
2024-05-14 17:18:17:  0: STDOUT: -------------------------------------------------------
2024-05-14 17:18:18:  0: INFO: Process exit code: 0
2024-05-14 17:18:18:  0: INFO: Finished Houdini Job
2024-05-14 17:18:18:  0: Done executing plugin command of type 'Render Task'

But I’ve got some serious redundancy and feedback loop going on as the render job gets re-rendered forever :smiley: Will be fixing that. Any suggestions to fix my approach?

Oh! Yeah drop your call to deadlinecommand - that’s what’s submitting a new job. Deadlinecommand with no arguments attempts to submit a job with whatever you’re passing, not render the job. You likely know that already, just being sure. :slight_smile:

The job will already exist by the time the pipeline bootstrap happens, so no additional submission is needed. And GlobalJobPreLoad.py will run for every job in the farm, so you don’t need to couple job submission and that script tightly.

Otherwise it looks good, I hoped you could do something like:

        if venv_needed:
            arguments = venv_script + " " + executable + " " + arguments

but I’m not going to argue with results once you’ve got that job creation loop sorted.

Hi Justin, turns out pipeline bootstrapping hasn’t yet allowed me to render inside venv as I thought yesterday. I’ve arrived at that conclusion by connecting my Solaris network in Houdini (ending in a USD render rop node) to a python script node. In that node I import a module that lives in my venv:

I’ve launched Houdini inside that venv, so that particular Houdini sees the module I’m importing.
But when I submit the job to Deadline I get an error:

Error starting ""C:/runHoudiniInVenv.bat"" in "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin" : The parameter is incorrect.

Here’s my current setup:

  1. runHoudiniInVenv.bat
"C:/VirtualEnvironment/Scripts/activate.bat" && "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe"
  1. GlobalJobPreLoad.py
#!/usr/bin/env python3
import sys

from Deadline.Scripting import *
from FranticX.Diagnostics import *


def AlterCommandLine(executable, arguments, workingDirectory):
    print("Entering Command Line Hook")

    # Quotes the executable if it wasn't already quoted, to ensure it gets passed as a single arg
    if not executable.startswith('"') and not executable.startswith("'"):
        executable = '"{}"'.format(executable)

    executable = "\"C:/runHoudiniInVenv.bat\""

    print("-----Modified Command Line-----")
    print(" Executable: '{}'".format(executable))
    print("  Arguments: '{}'".format(arguments))
    print("Working Dir: '{}'".format(workingDirectory))
    print("-------------------------------")

    # return the original or modified exe, args, workingDir even if pipeline not available
    return executable, arguments, workingDirectory


def __main__(deadlinePlugin):
    deadlinePlugin.DebugLogging = True  # optional, can be commented out
    deadlinePlugin.ModifyCommandLineCallback += AlterCommandLine

I submit the job to Deadline through GUI integrated submitter.

Do you have any suggestions on how to adapt my approach? Yesterday’s approach (with feedback loop and the loop fixed :slight_smile: ) with that venv-reliant module import in a python node produces the same “The parameter is incorrect” error.

Full job report:

=======================================================
Error
=======================================================
Error starting ""C:/VirtualEnvironment/Scripts/activate.bat"" in "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin" : The parameter is incorrect.
(System.Exception)
at FranticX.Processes.ChildProcess.i(String cc, String cd, String ce)
at FranticX.Processes.ChildProcess.Launch(String executable, String arguments, String startupDirectory)
at FranticX.Processes.ManagedProcess.Execute(Boolean waitForExit)
at Deadline.Plugins.DeadlinePlugin.DoRenderTasks()
at Deadline.Plugins.PluginWrapper.RenderTasks(Task task, String& outMessage, AbortLevel& abortLevel)
at Deadline.Plugins.PluginWrapper.RenderTasks(Task task, String& outMessage, AbortLevel& abortLevel)

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

=======================================================
Stack Trace
=======================================================
at Deadline.Plugins.SandboxedPlugin.d(DeadlineMessage bgq, CancellationToken bgr)
at Deadline.Plugins.SandboxedPlugin.RenderTask(Task task, CancellationToken cancellationToken)
at Deadline.Slaves.SlaveRenderThread.c(TaskLogWriter ajv, CancellationToken ajw)

=======================================================
Log
=======================================================
2024-05-15 14:09:12: 0: Loading Job's Plugin timeout is Disabled
2024-05-15 14:09:12: 0: SandboxedPlugin: Render Job As User disabled, running as current user 'm.zaras'
2024-05-15 14:09:14: 0: Executing plugin command of type 'Initialize Plugin'
2024-05-15 14:09:14: 0: INFO: Executing plugin script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\Houdini.py'
2024-05-15 14:09:14: 0: INFO: Plugin execution sandbox using Python version 3
2024-05-15 14:09:14: 0: INFO: About: Houdini Plugin for Deadline
2024-05-15 14:09:14: 0: INFO: The job's environment will be merged with the current environment before rendering
2024-05-15 14:09:14: 0: Done executing plugin command of type 'Initialize Plugin'
2024-05-15 14:09:14: 0: Start Job timeout is disabled.
2024-05-15 14:09:14: 0: Task timeout is disabled.
2024-05-15 14:09:14: 0: Loaded job: KitTest - /stage/usdrender_rop2 (6644a5e3f65215b1c3d71898)
2024-05-15 14:09:14: 0: Executing plugin command of type 'Start Job'
2024-05-15 14:09:14: 0: DEBUG: S3BackedCache Client is not installed.
2024-05-15 14:09:14: 0: INFO: Executing global asset transfer preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\GlobalAssetTransferPreLoad.py'
2024-05-15 14:09:14: 0: INFO: Looking for legacy (pre-10.0.26) AWS Portal File Transfer...
2024-05-15 14:09:14: 0: INFO: Looking for legacy (pre-10.0.26) File Transfer controller in C:/Program Files/Thinkbox/S3BackedCache/bin/task.py...
2024-05-15 14:09:14: 0: INFO: Could not find legacy (pre-10.0.26) AWS Portal File Transfer.
2024-05-15 14:09:14: 0: INFO: Legacy (pre-10.0.26) AWS Portal File Transfer is not installed on the system.
2024-05-15 14:09:14: 0: INFO: Executing global job preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\GlobalJobPreLoad.py'
2024-05-15 14:09:14: 0: Done executing plugin command of type 'Start Job'
2024-05-15 14:09:14: 0: Plugin rendering frame(s): 1
2024-05-15 14:09:14: 0: Executing plugin command of type 'Render Task'
2024-05-15 14:09:14: 0: INFO: Starting Houdini Job
2024-05-15 14:09:14: 0: INFO: Stdout Redirection Enabled: True
2024-05-15 14:09:14: 0: INFO: Stdout Handling Enabled: True
2024-05-15 14:09:14: 0: INFO: Popup Handling Enabled: True
2024-05-15 14:09:14: 0: INFO: QT Popup Handling Enabled: False
2024-05-15 14:09:14: 0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2024-05-15 14:09:14: 0: INFO: Using Process Tree: True
2024-05-15 14:09:14: 0: INFO: Hiding DOS Window: True
2024-05-15 14:09:14: 0: INFO: Creating New Console: False
2024-05-15 14:09:14: 0: INFO: Running as user: m.zaras
2024-05-15 14:09:14: 0: INFO: Executable: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe"
2024-05-15 14:09:14: 0: INFO: Argument: "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644a5e3f65215b1c3d71898\0_temph7Og60" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-15 14:09:14: 0: INFO: Full Command: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644a5e3f65215b1c3d71898\0_temph7Og60" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-15 14:09:14: 0: INFO: Startup Directory: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin"
2024-05-15 14:09:14: 0: PYTHON: Entering Command Line Hook
2024-05-15 14:09:14: 0: PYTHON: -----Modified Command Line-----
2024-05-15 14:09:14: 0: PYTHON: Executable: '"C:/Projects/pipeline_tools/pipeline-tools/VirtualEnvironment/Scripts/activate.bat"'
2024-05-15 14:09:14: 0: PYTHON: Arguments: '"C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644a5e3f65215b1c3d71898\0_temph7Og60" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"'
2024-05-15 14:09:14: 0: PYTHON: Working Dir: 'C:\Program Files\Side Effects Software\Houdini 20.0.625\bin'
2024-05-15 14:09:14: 0: PYTHON: -------------------------------
2024-05-15 14:09:14: 0: Done executing plugin command of type 'Render Task'

If you replace:

executable = "\"C:/runHoudiniInVenv.bat\""

with

executable = "C:/runHoudiniInVenv.bat"

how does it behave?

Just looking at '"C:/Projects/pipeline_tools/pipeline-tools/VirtualEnvironment/Scripts/activate.bat"' it seems like the extra double quotes are getting preserved and shouldn’t be.

it acts the same with regular double quotes, that’s what’s puzzling me :thinking: Do you have any ideas what “The parameter is incorrect” it may be referring to? It doesn’t state so in the worker log.

I’ll mull over those double quotes.

Honestly I’m not sure, I’ll need to loop back and give it a harder think.

The fact that it appears to die before exiting the ‘Command Line Hook’ feels like a clue. Maybe some extra logging lines in your AlterCommandLine method?

And if you run this on the render node in C:\Program Files\Side Effects Software\Houdini 20.0.625\bin how does it behave?

"C:/Projects/pipeline_tools/pipeline-tools/VirtualEnvironment/Scripts/activate.bat" "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644a5e3f65215b1c3d71898\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644a5e3f65215b1c3d71898\0_temph7Og60" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"

The hrender_dl.py is in DeadlineRepository10\plugins\Houdini. That should be what the Worker is attempting to run.

Actually - scratch that. Just have the activate.bat in your GlobalJobPreLoad.py. Deadline’s going to provide the Houdini executable so you’re doubling up. That might be the parameter problem.

When I do that, the job proceeds to completion without errors but interestingly never renders:

=======================================================
Log
=======================================================
2024-05-15 16:09:41: 0: Loading Job's Plugin timeout is Disabled
2024-05-15 16:09:41: 0: SandboxedPlugin: Render Job As User disabled, running as current user '<name>'
2024-05-15 16:09:42: 0: Executing plugin command of type 'Initialize Plugin'
2024-05-15 16:09:42: 0: INFO: Executing plugin script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\Houdini.py'
2024-05-15 16:09:42: 0: INFO: Plugin execution sandbox using Python version 3
2024-05-15 16:09:42: 0: INFO: About: Houdini Plugin for Deadline
2024-05-15 16:09:42: 0: INFO: The job's environment will be merged with the current environment before rendering
2024-05-15 16:09:42: 0: Done executing plugin command of type 'Initialize Plugin'
2024-05-15 16:09:42: 0: Start Job timeout is disabled.
2024-05-15 16:09:42: 0: Task timeout is disabled.
2024-05-15 16:09:42: 0: Loaded job: KitTest - /stage/usdrender_rop2 (6644c223f65215b1c3d718b6)
2024-05-15 16:09:42: 0: Executing plugin command of type 'Start Job'
2024-05-15 16:09:42: 0: DEBUG: S3BackedCache Client is not installed.
2024-05-15 16:09:42: 0: INFO: Executing global asset transfer preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\GlobalAssetTransferPreLoad.py'
2024-05-15 16:09:42: 0: INFO: Looking for legacy (pre-10.0.26) AWS Portal File Transfer...
2024-05-15 16:09:42: 0: INFO: Looking for legacy (pre-10.0.26) File Transfer controller in C:/Program Files/Thinkbox/S3BackedCache/bin/task.py...
2024-05-15 16:09:42: 0: INFO: Could not find legacy (pre-10.0.26) AWS Portal File Transfer.
2024-05-15 16:09:42: 0: INFO: Legacy (pre-10.0.26) AWS Portal File Transfer is not installed on the system.
2024-05-15 16:09:42: 0: INFO: Executing global job preload script 'C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\GlobalJobPreLoad.py'
2024-05-15 16:09:42: 0: Done executing plugin command of type 'Start Job'
2024-05-15 16:09:42: 0: Plugin rendering frame(s): 1
2024-05-15 16:09:43: 0: Executing plugin command of type 'Render Task'
2024-05-15 16:09:43: 0: INFO: Starting Houdini Job
2024-05-15 16:09:43: 0: INFO: Stdout Redirection Enabled: True
2024-05-15 16:09:43: 0: INFO: Stdout Handling Enabled: True
2024-05-15 16:09:43: 0: INFO: Popup Handling Enabled: True
2024-05-15 16:09:43: 0: INFO: QT Popup Handling Enabled: False
2024-05-15 16:09:43: 0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2024-05-15 16:09:43: 0: INFO: Using Process Tree: True
2024-05-15 16:09:43: 0: INFO: Hiding DOS Window: True
2024-05-15 16:09:43: 0: INFO: Creating New Console: False
2024-05-15 16:09:43: 0: INFO: Running as user: <name>
2024-05-15 16:09:43: 0: INFO: Executable: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe"
2024-05-15 16:09:43: 0: INFO: Argument: "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644c223f65215b1c3d718b6\0_tempL5mug0" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-15 16:09:43: 0: INFO: Full Command: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin\hython.exe" "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644c223f65215b1c3d718b6\0_tempL5mug0" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"
2024-05-15 16:09:43: 0: INFO: Startup Directory: "C:\Program Files\Side Effects Software\Houdini 20.0.625\bin"
2024-05-15 16:09:43: 0: PYTHON: Entering Command Line Hook
2024-05-15 16:09:43: 0: PYTHON: -----Modified Command Line-----
2024-05-15 16:09:43: 0: PYTHON: Executable: 'C:/Projects/pipeline_tools/pipeline-tools/VirtualEnvironment/Scripts/activate.bat'
2024-05-15 16:09:43: 0: PYTHON: Arguments: '"C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\plugins\6644c223f65215b1c3d718b6\hrender_dl.py" -f 1 1 1 -d /stage/usdrender_rop2 -tempdir "C:\ProgramData\Thinkbox\Deadline10\workers\<worker name>\jobsData\6644c223f65215b1c3d718b6\0_tempL5mug0" -arnoldAbortOnLicenseFail 1 "C:/Projects/Houdini_running_OmniKit/testSceneHoudiniwLayers/KitTest.hiplc"'
2024-05-15 16:09:43: 0: PYTHON: Working Dir: 'C:\Program Files\Side Effects Software\Houdini 20.0.625\bin'
2024-05-15 16:09:43: 0: PYTHON: -------------------------------
2024-05-15 16:09:43: 0: INFO: Process Priority: BelowNormal
2024-05-15 16:09:43: 0: INFO: Process Affinity: default
2024-05-15 16:09:43: 0: INFO: Process is now running
2024-05-15 16:09:43: 0: INFO: Process exit code: 0
2024-05-15 16:09:43: 0: INFO: Finished Houdini Job
2024-05-15 16:09:43: 0: Done executing plugin command of type 'Render Task'

=======================================================
Details
=======================================================
Date: 05/15/2024 16:09:44
Frames: 1
Job Submit Date: 05/15/2024 16:09:39
Job User: <name>
Average RAM Usage: 0 (0%)
Peak RAM Usage: 0 (0%)
Average CPU Usage: 0%
Peak CPU Usage: 0%
Used CPU Clocks (x10^6 cycles): 0
Total CPU Clocks (x10^6 cycles): 0

=======================================================
Worker Information
=======================================================
Worker Name: <worker name>
Version: v10.3.0.13 Release (7883f0093)
Operating System: Windows 10 Pro
Running As Service: No
Machine User: <name>
IP Address: …
MAC Address: …
CPU Architecture: x64
CPUs: 24
CPU Usage: 1%
Memory Usage: 24.1 GB / 127.7 GB (18%)
Free Disk Space: 143.909 GB 
Video Card: NVIDIA TITAN RTX

I bet the venv process ends and Deadline completes the task with it :expressionless:

Alternate plan - lose the GlobalJobPreload.py and put runHoudiniInVenv.bat as it exists in this post at the top of the list of Houdini executables in the Monitor under Tools → Configure Plugins. I think that’ll change which process is the one being tracked by Deadline, but I’m not 100% certain. I’d test but you’ve already got the parts in front of you. :slight_smile:

Privacy | Site terms | Cookie preferences