Error handling
Royal Render distances itself from simple “fire render and forget” systems. A render job is not done when frames have been send to the render clients. No, a job is done if all frames are on your harddrive! It lays great value on accompanying your render jobs. It handles errors from crashed renderers to visual correctness analysis. In Detail:
Renderer return
The client reads the returned exit code of the renderer to check if the renderer crashed.
Render freeze
It happens this and then that a renderer freezes. It does not return, it does not crash, it does nothing. The client detects this. (an important feature missing in other solutions)
Frame file existence check
The server checks for the files that have been rendered. If a frame is missing (due to a client crash or user delete), a client renders that frame.
Frame file size check
The rrServer checks the file size of the output image. If you have not set a size, the size is calculated based on the file format you use and the image resolution of the job.
Frame visual check
After the render a tool analyses the rendered sequence and searches for visual errors like a mental Ray tile is missing or shaders are not assigned. The check result is displayed at the job.
Realtime and after render error message check
The RRClient checks the render log output while rendering for some special messages. If it finds such an error message, it will abort the job. E.g. if the Arnold plugin was not loaded (It makes no sense that Maya switches to the default renderer and continues).After a render is completed, the log file is searched for special errors, as the render app does not always return an error code.
Windows: error dialogs
The rrClient checks all dialogs that an application creates for configured error messages.
And handles these dialogs by pressing the right button.
View render log files
You have always access to the renderer output log files from any workstation. Just in case you need to investigate a problem
Client crashes
Crashes happen, but the server keeps track that all frames are rendered. If a client crashes too often (e.g. plugin missing), it is deassigned. If there is a predefined log message, it is deassigned directly.
Job crashes
Of course, if a job crashes too often, then there is something wrong. The job is disabled and the clients are rendering other jobs.
No Scene Output
A scene renders, but does not create the output specified. Nor does the renderer return any error. The server detects it.
Client start check
Before a client starts to render, it checks if it can access the scene file and the output directory.
Space Left
It can happen that a project share it filled up and no space is left. In this case the server disables the job instead of rendering it over and over and waiting for crashes.