nexrender icon indicating copy to clipboard operation
nexrender copied to clipboard

Windows process AfterFX.exe is not killed when no logging is reported for 60 seconds.

Open Tillaert opened this issue 1 year ago • 8 comments

Describe the bug Windows process AfterFX.exe is not killed when no logging is reported for 60 seconds. Node process exits.

Information about environment Windows Server 2019. Remaining process:


Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
AfterFX.com                   2560 Services                   1  4,764,060 K

Expected behavior The AfterFX.exe is killed.

Additional info

Tillaert avatar Mar 28 '24 16:03 Tillaert

Any ideas on how to kill a specific AfterFX process related to that particular worker?

Assuming we have lets say 4 workers running in parallel, the problem is that we don't want to accidentally kill a process related to one of the "healthy" workers that are busy on rendering actual videos.

inlife avatar Mar 28 '24 16:03 inlife

I have no idea. The way we run is, that we have one runner per environment, but that environment doesn't finish, because a process is still running.

I can kill the environment, after a timeout, however, NexRender's logging timeout cannot be disabled (I now set it to Number.MAX_SAFE_INTEGER). If that timeout kicks in, it returns a value (through an exception) which stops the external time-out mechanism.

Due to the nature of AfterEffects, this problem might not be solvable. It would help if the maxUpdateTimeout can be set to zero, disabling the timer (similar to maxRenderTimeout )

Tillaert avatar Mar 28 '24 16:03 Tillaert

Thanks for the info. I'll think of possible solutions.

I wonder, what is the way you separate the environments? This approach sounds very interesting.

inlife avatar Mar 28 '24 17:03 inlife

I run aftereffects in a VM, using nexrender to configure the job, and when all the processes are done, the VM is destroyed. The dangling process causes the VM not to finish. I could investigate killing the VM from the host, once NexRender has finished.

Tillaert avatar Mar 29 '24 08:03 Tillaert

Maybe on Windows we can use something like https://github.com/inlife/nexrender/pull/996 To kill aerender and all related to aerender child process (like AfterFX.exe )

igalness avatar May 31 '24 09:05 igalness

After running some tests on Windows 11 + Node 20 LTS + AE 2023 , it looks like instance.kill('SIGINT') only terminates the aerender.exe process and leaves AfterFX.exe process spawned by it, still running

igalness avatar May 31 '24 17:05 igalness

@Tillaert Using VM sounds like an interesting solution, especially for more reliable concurrent processing. Could you please provide a detailed of your solution? Very appreciate!!

mario1in avatar Jun 12 '24 05:06 mario1in

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Aug 13 '24 00:08 stale[bot]