SYMPTOMS
When running Katana you may see the following errors in the Terminal:
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
You may also find error locations in your scene graph with one of the following messages:
Error spawning Python interpreter
Error executing AttributeScript: The interpreter process could not be reached.
These errors indicate a failed communication between child Python processes spawned to handle AttributeScripts and Python Asset Plug-ins and Katana, and may lead to a crash.
CAUSE
Generally, at any given time there are up to two Python subprocesses launched by Katana's ProcessManager -- one dedicated to processing AttributeScripts and one to processing Python Asset Plug-ins. Each process is launched lazily (only when it's needed it gets launched) and if your scene uses no Python Asset Plug-ins or contains no AttributeScript nodes there should be no ProcessManager subprocesses spawned or errors shown.
RESOLUTION
- If you are seeing these errors with custom plug-ins, please ensure that they are placed in the right folders within KATANA_RESOURCES. For example, errors like these can appear if an asset plugin is mistakenly placed in the "Plugins" folder instead of the "AssetPlugins" folder.
- KATANA_IPC_MAX_SPAWN_ATTEMPTS -- The maximum number of times the ProcessManager should attempt to spawn a process before reporting unable to do so. The default value is 5.
- KATANA_IPC_MAX_VERIFY_ATTEMPTS -- The maximum number of times the ProcessManager should attempt to verify if a process is alive and ready to accept work. The default value is 101.
- The ProcessManager will attempt to verify if a process is alive and ready to accept work for each KATANA_IPC_MAX_SPAWN_
- Only if all KATANA_IPC_MAX_VERIFY_
We recommend setting the environment variable KATANA_IPC_MAX_VERIFY_ATTEMPTS to 1000. This effectively forces Katana to keep trying to communicate with the newly-created child process for up to one minute which should be sufficient. You may notice an increased delay at the start of each render while Katana attempts to establish communication with its child processes, but this should be a one-off event.
- Katana no longer terminates a sub-process responsible for running AttributeScripts or Python Asset Plug-ins if it takes longer than 5s to launch.
- Katana no longer hangs if one of these sub-processes crashes.
If you encounter these errors then please try setting the appropriated environment variables for the version of Katana you are running. If you still encounter problems then please open a Support ticket and let us know the issue you are encountering and the troubleshooting steps you have taken so far.
We're sorry to hear that
Please tell us why