We've had a little consternation with an HDA Processor that was silently failing in PDG and we had trouble working out what the issue was. The PDG WorkItem log would display simply that there was “No geometry generated!” and no other useful information.
It transpired that actually it was due to a command raising an exception inside a Python node, within that HDA.
So I've got a bit of a broad question in terms of how we should approach debugging PDG failures in cases like this. I'm not sure what is the expected behaviour here and if there are tools I am missing.
- It's surprising that the Python exception is not elevated to the PDG log. If I replicate the error conditions inside Houdini, the node goes red and I get a clear error message explaining why it has failed, but PDG simply tells you that “No geometry generated!” error message. Especially quite odd since if I use print() functions inside a Python node, those do show up in the PDG log.
- If there are any more detailed log files being baked out that give details as to specifically which node failed within the HDA, I haven't been able to find any output.
- The Debug .hip File function is useful, but it seems somewhat poorly documented and there is no easy way to find where the debug .hip was saved. I've had to resort to searching for *.pdg through my project folder and then ordering those by date modified in order to find the relevant ones. It seems like the debug hip path ought to get saved out as a workitem attribute similar to the outputpath.
We've ended up adding Python nodes that print() debug data, so as to get a better idea where certain operations are failing, but this seems unnecessarily complicated.
Am I missing any obvious paths for debugging, or do are these potential areas for future development?