创建支持服务单
关注

Q100177:ProcessManager和AssetProcessManager错误故障排除

症状

运行Katana时,您可能会在终端中看到以下任何错误:

ProcessManager: Error communicating with process 0x7f8b04001410 (attempt 1 of 5).
ProcessManager: Error verifying alive status of process 0x7f8b04001410.
ProcessManager: Error verifying 'getwork' status of process 0x7f8b04001410.
ProcessManager: Failed to spawn as many processes as requested.
ProcessManager: Process acquisition failed.
AssetProcessManager: Error acquiring interpreter to run command 'isFileSequence' on 'FileSeq'.
AssetProcessManager: Error communicating with sub-process.
AttributeScriptInterpreter: unable to communicate with the parent process

您还可以使用以下消息之一在场景图中找到错误位置:

Error spawning Python interpreter
Error executing AttributeScript: The interpreter process could not be reached.

这些错误表明生成处理AttributeScripts和Python资产插件的孩子Python进程与Katana之间的通信失败,并可能导致崩溃。

原因

Katana 2.0及更高版本在单独的子流程中运行AttributeScripts和Python Asset Plug-ins。 Katana的内部流程管理器维护这些活动流程,并在请求时分配新流程。有时,这些过程可能需要比预期更长的启动时间(例如,由于网络负载过重),并且您可能会看到“无法与父进程通信”错误消息打印到终端。

通常,在任何给定时间,Katana的ProcessManager最多启动两个Python子进程 - 一个用于处理AttributeScripts,另一个用于处理Python Asset Plug-ins。每个进程都是懒惰启动的(仅在需要时启动),如果您的场景不使用Python Asset Plug-ins或不包含AttributeScript节点,则不应生成ProcessManager子进程或显示错误。
但是,如果启动了一个进程,那么它将在Katana UI /呈现会话期间存在,并可能产生此类错误。

解析度

  • 如果您在自定义插件中看到这些错误,请确保将它们放在KATANA_RESOURCES内的正确文件夹中。例如,如果资产插件被错误地放在“插件”文件夹而不是“AssetPlugins”文件夹中,则会出现这些错误。
解决此问题的另一种方法取决于您运行的Katana的版本:
KATANA 2.0和2.1
在Katana 2.0和2.1中,如果ProcessManager没有响应,它们将被ProcessManager杀死。
但是,我们知道Katana在产生子进程后不会等待很长时间才能回复的问题,并宣告子进程过早死亡。
在仍然使用产生Python进程的AttributeScript节点或Python资源插件的同时,您可以通过设置以下两个环境变量来修改此行为,具体取决于您的工作流要求:

- KATANA _IPC_MAX_SPAWN_ATTEMPTS - ProcessManager在报告无法生成流程之前应尝试生成流程的最大次数。默认值为5。

- KATANA _IPC_MAX_VERIFY_ATTEMPTS - ProcessManager应尝试验证进程是否处于活动状态并准备接受工作的最大次数。默认值为101。

- ProcessManager将尝试验证进程是否处于活动状态并准备接受每个KATANA工作_IPC_MAX_SPAWN_ ATTEMPTS时间。

- 仅限所有KATANA _IPC_MAX_VERIFY_ ATTEMPTS失败(对于给定的spawn尝试),您将获得记录到控制台的“与进程通信时出错”消息。

我们建议将环境变量KATANA_IPC_MAX_VERIFY_ATTEMPTS设置为1000.这有效地迫使Katana继续尝试与新创建的子进程通信最多一分钟,这应该足够了。您可能会注意到每个渲染开始时延迟增加,而Katana尝试与其子进程建立通信,但这应该是一次性事件。

KATANA 2.5
Katana 2.5包含对Python Asset Plug-ins和AttributeScripts可靠性的一般改进。特别是:
  • 如果启动时间超过5秒, Katana不再终止负责运行AttributeScripts或Python Asset Plug-ins的子流程。
  • 如果其中一个子流程崩溃, Katana不会再挂起了。
环境变量KATANA _IPC_MAX_VERIFY_ATTEMPTS间接影响了Katana等待子流程回复的时间,在Katana 2.5中已被弃用。
现在有一个新的环境变量可以控制Katana等待子进程启动的时间长度(默认为一分钟): KATANA _IPC_SPAWN_TIMEOUT_S
这需要以秒为单位的值,并且接受最少5秒。
我们建议使用此版本来利用对AttributeScripts和Python Asset Plug-ins性能的改进。
下一步
如果您遇到这些错误,请尝试为您正在运行的Katana版本设置适当的环境变量。如果您仍然遇到问题,请打开支持服务单,告诉我们您遇到的问题以及您到目前为止所采取的故障排除步骤。
有关如何打开支持服务单的更多信息,请参阅“ 使用支持门户 ”一文。

这篇文章有帮助吗?

我们很遗憾听到

请告诉我们
0 人中有 0 人觉得有帮助

评论