quadproduction / OpenPype

QuadProd version of OpenPype
MIT License
4 stars 0 forks source link

Bug: Render on deadline not working #573

Closed romaincharoy closed 1 year ago

romaincharoy commented 1 year ago

Before posting a new ticket, have you looked through the documentation to find an answer?

Yes I have

Have you looked through the existing tickets to find any related issues ?

Yes I have

Author of the bug

Romain Charoy

Version

3.15.12-quad.4.1

What platform you are running OpenPype on?

Linux / Centos

Current Behavior:

When attempting to launch a render from maya to deadline, there is an error on deadline

Expected Behavior:

Full sequence rendering without error

What type of bug is it ?

Happened only once in a particular configuration

Which project / workfile / asset / ...

/prod/prod2/Projets/2022/TEST_OP_RLX_2022/Sequences/101/101_0010/work/light/test_op_rlx_101_0010_light_v006.ma

Steps To Reproduce:

Open the described lighting scene in maya from the launcher. Pyblish the renderlayer and workfile. Once the job is on deadline you get the error. Job ID 64ecd023181037062749fe8f for example

Relevant log output:

023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_houdini_render_deadline" (No module named 'hou')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_houdini_render_deadline" (No module named 'hou')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_nuke_deadline" (No module named 'nuke')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_nuke_deadline" (No module named 'nuke')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_maya_remote_publish_deadline" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_maya_remote_publish_deadline" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_maya_deadline" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_maya_deadline" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_houdini_remote_publish" (No module named 'hou')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_houdini_remote_publish" (No module named 'hou')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "collect_deadline_server_from_instance" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "collect_deadline_server_from_instance" (No module named 'maya')
2023-08-29 10:55:20:  0: STDOUT: ERROR - Skipped: "submit_max_deadline" (No module named 'pymxs')
2023-08-29 10:55:20:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "submit_max_deadline" (No module named 'pymxs')
2023-08-29 10:55:22:  0: STDOUT: ERROR - Skipped: "validate_arnold_camera_metadata" (No module named 'maya')
2023-08-29 10:55:22:  0: STDOUT: ERROR:pyblish.plugin:Skipped: "validate_arnold_camera_metadata" (No module named 'maya')

2023-08-29 10:55:24:  0: STDOUT: FileNotFoundError: [Errno 2] No such file or directory: '/prod/prod2/Projets/2022/TEST_OP_RLX_2022/INSTA_sept2023/0010/work/light/renders/maya/test_op_rlx_0010_workfileLight_v005/LIGHT/MONTRE_LAYER_RGBA_Light_Montre_Key'
2023-08-29 10:55:24:  0: STDOUT: ERROR:pyblish.plugin:Traceback (most recent call last):
2023-08-29 10:55:24:  0: STDOUT:   File "/prod/softprod/apps/openpype/LINUX/3.15.0/dependencies/pyblish/plugin.py", line 527, in __explicit_process
2023-08-29 10:55:24:  0: STDOUT:     runner(*args)
2023-08-29 10:55:24:  0: STDOUT:   File "/users_roaming/rcharoy/.local/share/openpype/3.15/openpype-v3.15.12-quad.4.0/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py", line 30, in process
2023-08-29 10:55:24:  0: STDOUT:   File "/users_roaming/rcharoy/.local/share/openpype/3.15/openpype-v3.15.12-quad.4.0/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py", line 191, in _get_existing_files
2023-08-29 10:55:24:  0: STDOUT: FileNotFoundError: [Errno 2] No such file or directory: '/prod/prod2/Projets/2022/TEST_OP_RLX_2022/INSTA_sept2023/0010/work/light/renders/maya/test_op_rlx_0010_workfileLight_v005/LIGHT/MONTRE_LAYER_RGBA_Light_Montre_Key'
2023-08-29 10:55:24:  0: STDOUT: Traceback (most recent call last):
2023-08-29 10:55:24:  0: STDOUT:   File "/prod/softprod/apps/openpype/LINUX/3.15.0/dependencies/pyblish/plugin.py", line 527, in __explicit_process
2023-08-29 10:55:24:  0: STDOUT:     runner(*args)
2023-08-29 10:55:24:  0: STDOUT:   File "<string>", line 30, in process
2023-08-29 10:55:24:  0: STDOUT:   File "<string>", line 191, in _get_existing_files
2023-08-29 10:55:24:  0: STDOUT: FileNotFoundError: [Errno 2] No such file or directory: '/prod/prod2/Projets/2022/TEST_OP_RLX_2022/INSTA_sept2023/0010/work/light/renders/maya/test_op_rlx_0010_workfileLight_v005/LIGHT/MONTRE_LAYER_RGBA_Light_Montre_Key'

Additional context:

No response

ccaillot commented 1 year ago

Hello @romaincharoy,

I've identified two major errors. The first is that the publishing job was forced to proceed without waiting for the Maya jobs to finish. The problem lies in the requirement for the Maya job to complete before the publish job can be executed.

As you can see in the screenshot, you can review the dependencies of your job.

Image

Additionally, there's an issue with the Maya Job being blocked due to a blank file in the asset dependencies. This blank file leads to the problem. Upon inspecting the scene, it appears that this node (COSMO_40_Mxxxxxx_xxxx01:metal_multiFinition_acier_depoli:file_metal_multiFinition_input2_0) is in use but the imageTexture's path is empty. Deleting the node will rectify this issue.

Image

romaincharoy commented 1 year ago

Hi @ccaillot understood. What is the next step with the first issue ? We tried to launch jobs with another watch (ID > 64f082a218103706274a9e12) and killing the publish job and all the dependencies. The job stays on "queued". Thank you

ccaillot commented 1 year ago

Hi @romaincharoy,

It's normal, as I said in my first message, you need to fix this node in your scene (

COSMO_40_Mxxxxxx_xxxx01:metal_multiFinition_acier_depoli:file_metal_multiFinition_input2_0

). It still exists yet in your scene, while this node will be there the render will be blocked.

image

romaincharoy commented 1 year ago

ok we tried to put a new shader on the watch and the render completes. Do we have a possibility to continue the render process without considering this issue with the shaders ? About the first issue with the dependencies, how can we fix it ? is it a dev issue ? Thank you

ccaillot commented 1 year ago

by executing this code in your script editor you can check all dependencies your scene are calling during the deadline processing.

If you see a path which is equal to None, this will block your render.... but there is a workaround in deadline which consist in your job to delete the 'blank path' in Job Properties > Dependencies >Assets Tab > Remove on Right Top (While blank path is selected) (cf. screenshot).

dependencies = []
for node in cmds.ls(type="file"):
    path = cmds.getAttr("{}.{}".format(node, "fileTextureName"))
    if path not in dependencies:
        print(node, path)
        dependencies.append(path)

for node in cmds.ls(type="AlembicNode"):
    path = cmds.getAttr("{}.{}".format(node, "abc_File"))
    if path not in dependencies:
        print(node, path)
        dependencies.append(path)

The first issue exists cause of the second issue.

PS: for blank path like the node I've pointed before, you can break the connection and use a black constant, it will make the same job.

Image

romaincharoy commented 1 year ago

ok thank you !