AWS Thinkbox Discussion Forums

ISSUE wrapping deadline submitter in custom HDA

Hi there.

I have been using Deadline with Houdini 18 ever since 18 came out, and it has worked quite flawlessly for me.

However I am now running into a little bit of an issue. I had a caching tool that I have now today updated (basically just added a few extra nodes to further remove and optimize the data before it gets cached to disk).

However now that I have done that update when I execute “submit to deadline”

it throws me this error:

Traceback (most recent call last):
File “opdef:/Driver/deadline?PythonModule”, line 25, in SubmitToDeadline
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 496, in SubmitToDeadline
dlSubmitter.submitJobs()
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 46, in submitJobs
self.prepareNodesForSubmission()
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 71, in prepareNodesForSubmission
self._recursive_PrepareNodesForSubmission( self.dlNode, self.dlNode, None )
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 145, in _recursive_PrepareNodesForSubmission
curDeps.extend( self._recursive_PrepareNodesForSubmission( futureDlNode, inputNode ) )
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 158, in _recursive_PrepareNodesForSubmission
fetchChainDependencies = self._recursive_PrepareNodesForSubmission( futureDlNode, fetchRop, curDeps )
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 145, in _recursive_PrepareNodesForSubmission
curDeps.extend( self._recursive_PrepareNodesForSubmission( futureDlNode, inputNode ) )
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 145, in _recursive_PrepareNodesForSubmission
curDeps.extend( self._recursive_PrepareNodesForSubmission( futureDlNode, inputNode ) )
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 136, in _recursive_PrepareNodesForSubmission
inputNodes = self._getInputNodes(curNode)
File “E:/repository/submission/Houdini/Main\SubmitDeadlineRop.py”, line 208, in _getInputNodes
selectedInput = curNode.parm(“index”).eval()
AttributeError: ‘NoneType’ object has no attribute ‘eval’

The SubmitDeadlineRop.py script could not be found in the Deadline Repository. Please make sure that the Deadline Client has been installed on this machine, that the Deadline Client bin folder is set in the DEADLINE_PATH environment variable, and that the Deadline Client has been configured to point to a valid Repository.

I am not really sure what to make of this, since my caching tool worked before I made the changes, but all I really have done to update the tool is adding a few extra Sops.

Any idea where to start when trouble shooting this?

Thanks in advance.

okay so I think I have a solution here but I would like other houdini users to help me confirm this is an issue overall.

It seems that if you use a fetch node in a ropnet and pipe that into the deadline submitter it wont work if there is a switch Sop in the Sop tree connected to the Rop Geometry Output targeted by the fetch node.

If you remove the switches from your Sop tree it will not have a throw the above error.

The solution to this problem was to remove the fetch node and use the Geometry node in the rop contexts as well. Then it has no problem submitting with the deadline submitter.

Could anyone confirm that they have the same issue?

You can download an example file that I have created that produces the error.

1 Like

I just reproduced the error using the test file on houdini 17.5.425 using deadline 10.1

This is arguably a shortcoming of the submitter, it unconditionally tries to get the index parameter of the incoming node (while it should probably check if it’s present first). I don’t know what the index parameter is, though :man_shrugging:

So I’ve followed along with the reproduction steps, with the test file and Houdini version.

Its not failing to submit for me, so clearly I’m doing something wrong.

Could someone who’s reproduced this error share it? Or a screenshot of your submission/scene setup I can crib notes off of?

It is as simple as this.
You can see the error in the Console bottom right corner’
Note that the fetch node in the ROP is calling the ROP geometry output node called “cache”

So my attempted reproduction didn’t even have the shape, so clearly I was doing something wrong.

But another member of the support team had @SolidAlphaVFX’s ticket and has successfully recreated the issue and create a bug report.

We can’t say how long it will take to fix, but if you’re reading this in the future and are running Deadline 10.1.4.1 or older I’d consider upgrading.

1 Like

Hey everyone, just writing to say I confirm the same issue here.
I’m glad I found this thread because I was spending a lot of time trying to debug what was going on, especially with that red herring error of not being able to find the submission script.
Removing the switch node from my SOP network allowed the Deadline submission ROP to work with the fetch ROP.

1 Like

So it seems like the plugin is not following to the correct node from Fetch. Maybe it is getting the first parent, not checking whether that’s renderable.

The SubmitHoudiniToDeadline code is in dire need of refactoring, imo, tracing issues is difficult, the submit function itself is like a thousand lines. The latest version had some improvements, but it is still a clusterfuck.

I had some luck with remotely debugging the submitter using remote_pdb and this article, which helped me identify an issue with it, where OutputDirectory and OutputFilename were not getting written to the job. Stepping through the code is much easier in this case than writing log output, having to submit multiple times, etc.

2 Likes

Did anyone have the same issue using the usd_rop LOP cacher?

Which version of Deadline has solved the above issue?
I am on 10.1.18.4 , using Houdini 19.0.455

Thanks!

Check this. Solved.

Bug Report for Houdini Submitter - Deadline - AWS Thinkbox Discussion Forums (thinkboxsoftware.com)

Privacy | Site terms | Cookie preferences