LogicReinc / LogicReinc.BlendFarm

A stand-alone Blender Network Renderer
GNU General Public License v3.0
412 stars 35 forks source link

Skipped Frames in Animation Render #79

Open atoav opened 11 months ago

atoav commented 11 months ago

Thanks for your great project! I am currently in the process on rendering a long animation on 3 distributed machines (Windows 10, Linux, Mac OS).

As I tried to convert the animation to video I noticed there were frames missing (out of 214 frames the ones missing were frame 9 and 353). As I did not intervene in the rendering process in any way and all machines are set to never sleep, suspend or whatnot this could hint to a race condition of some sort. I will observe if I can see this again.

LogicReinc commented 11 months ago

In the other issue you mentioned 2 clients disconnected. so I assume this is related to that. effectively the frames that were tasks when the 2 clients failed are the ones lost is my guess. I'll take a look at it, but its not very high priority. Were you using the queueing system for this?

atoav commented 11 months ago

The first "dropped" frame was number 9, and by that point I was still sitting in front of the computer, so I would have noticed a lack of connectivity there. The second dropped frame could have roughly overlapped with the connectivity issue, although I can only guess.

I wasn't using the queueing system, so we can rule that one out.

LogicReinc commented 11 months ago

Did a check, and from what I can see animation tasks that throw an exception are put back in the animation queue unless the exception is cancellation-related.

If it fails to write it to disk it should show a messagebox. Suspect I wont be able to fix this before the build for this weekend. Have been pushing it back way too long already.

atoav commented 11 months ago

Did a check, and from what I can see animation tasks that throw an exception are put back in the animation queue unless the exception is cancellation-related.

If I get that right that means after all other frames are rendered the faild ones would render? That could be, because I cancelled the render on that animation in the end. One might consider the idea of not putting failed frames to the back of the queue, but to the front (although this might be a problem with constantly failing frames, because blender crashes etc.)

Suspect I wont be able to fix this before the build for this weekend. Have been pushing it back way too long already.

No worries I just opened the issue so it is not forgot, please don't read anything I write it as me pushing. It is Open Source and I am more than thankful for what exists already!

LogicReinc commented 11 months ago

It sounds that it is likely due to cancellation then, putting the lost frame at the front or back of the queue does not really affect the task unless you are trying to do a partial render. Imo putting them at the back makes more sense as it is technically a failed frame for whatever reason. So ideally it keeps rendering other frames that haven't failed first before trying those failed ones again. As at least if they keep failing, other frames have already been handled.