2
$\begingroup$

I have 4 computers running blender where 2 of them are slaves, one is a master, and one is the client. I am using the Network Render Add-on.

After about 50% of the render is complete, I get the following error:

error

The slaves are idle, but the job just shows as queued: control enter image description here

I'm getting this error with both Cycles and Blender Render. But in Cycles, the render doesn't even start.

Does anyone know what is going on?

$\endgroup$
2
  • $\begingroup$ do you have enough memory on the slave machines? also are you rendering with the GPU or cpu ? $\endgroup$
    – user2816
    Commented Jun 20, 2016 at 10:17
  • $\begingroup$ yes the slave machines have memory and rendering on cpu $\endgroup$ Commented Jun 20, 2016 at 10:47

1 Answer 1

2
$\begingroup$

An EXCEPTION_ACCESS_VIOLATION can only ever be caused by a thread accessing virtual RAM that it's not supposed to. That's the only possible cause.

There are only two ways that can happen.

1) a thread is writing to a RAM location that belongs to another thread. I cannot stress enough how uncommon this case is for production applications. This is practically unheard of. If this ever happens (which is rare) it's a driver, not an application.

2) an application ran out of memory. It's NOT uncommon that a program will "detect" that there is no more available memory by just attempting to address some, getting told "STAHP!," and then crashing.

I suspect that you're loading a lot more than you think you are, or you have some kind of weird circular dependency that is just recursively loading stuff until it crashes. This has also happened when the GPU runs out of VRAM. There's a weird thing that when a GPU runs out of VRAM, sometimes nobody listens... consequently, the system keeps loading stuff, ignoring the fact that it's all going to RAM... and then Virtual RAM... and then crashes.

I'd recommend manually trying to render on each machine to make sure they're all working fine.


Unsolicited Advice

Really, the best way to network render if you have fewer than 10 machines is to set up a network drive (or Dropbox, but DB is slower) and have all your machines render separately (as if they were rendering by themselves) to that location. Turn on "Placeholder" and turn OFF "Overwrite." Each machine will attempt to render a frame by creating an empty file with the right name. Because "Overwrite" is OFF, when it sees that a file with that name already exists, it will skip to the next frame. It will continue skipping until it's able to create a placeholder. Then it will start rendering that frame. When it finishes rendering the frame, it'll attempt to create a placeholder for the next frame, and the cycle starts over again.

This method is great because it automatically balances the load among "differently-abled" machines. Each machine just renders the next frame in the sequence. You can also stop any machine at any time, and add any machine at any time, without disrupting the process. Especially if you've got them all loading the same Blender file from the same location (network or Dropbox), you don't have to spend a lot of time copying Blender scenes from one computer to another.

Note: If your frames are coming out too fast, or if your network is too slow, two machines might create the same placeholder at the same time, and that frame will (oddly) end up getting skipped. Just stop one of the machines, delete the skipped file, and start it again. That machine will skip to the gap, render that image, and then skip to the next missing frame.

$\endgroup$
3
  • $\begingroup$ Wow, thanks a lot. I'm new to network rendering, and will try out what you advised... :D $\endgroup$ Commented Jun 21, 2016 at 4:47
  • $\begingroup$ You're welcome ;-) Add a comment here, letting us know how it turns out! $\endgroup$
    – Matt
    Commented Jun 21, 2016 at 13:05
  • 1
    $\begingroup$ Thanks I used the 3 machines all rendering in a common network directory and worked very well... and was also simple probably would have finished rendering a few hours ago thanks again for the advice $\endgroup$ Commented Jun 21, 2016 at 16:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .