ID 447697 - Cancelling a render during the scene traversal stage does not immediately terminate the render process, may stall the UI, or has no effect at all
When cancelling a render, for example by pressing the Esc key, during the scene traversal stage, the render process is not terminated immediately.
Steps to reproduce:
WARNING: In Linux, the DEFAULT_RENDER_TERMINATION_SIGNAL environment variable needs to be set to SIGKILL, or else the Katana UI can freeze indefinitely while waiting for the cancelled render processes to terminate. This issue is to be addressed as part of ID 394102.
In the Node Graph tab, add a CameraCreate node and an OpScript in a chain.
Double-click the OpScript node to set the view and edit flags on it.
In the Parameters tab, set the CEL parameter of the OpScript node to /root/world.
Also set its script.lua parameter to:
if Interface.AtRoot() then Interface.CreateChild('expensive_children')else if Interface.GetOutputName() == 'expensive_children' then Interface.CreateChild('child') else local ffi = require "ffi" ffi.cdef "unsigned int sleep(unsigned int seconds);" ffi.C.sleep(10) endend
Start a Preview Render or a Live Render from the OpScript node.
Cancel the current render straight away, by executing one of the following actions:
Press Esc.
Trigger the Render > Cancel Current Render action from the top menu bar.
Press the Cancel Render button in the Monitor tab or in the Render Log tab (the button next to the progress bar).
In the Catalog tab, select the item and press Delete to delete the item.
Expected behavior:
The render is cancelled without having to wait for 10 seconds.
Actual behavior:
Nothing happens. The render continues for 10 seconds; only then the user can cancel the render.
NOTE: If a Live Render was started, and option 4 above was used, the item will be deleted from the Catalog tab, but it will reappear after 10 seconds, as it was never really cancelled.
Workaround:
Press Shift+Esc to cancel all renders. This was the behaviour of Esc until Katana 4.0v1.