Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#24611] Netrender slave node invoked from CLI fills hard drive with blank pictures if master is down

Date:
2010-11-08 17:32
Priority:
3
State:
Closed
Submitted by:
Dan McGrath (dmcgrath)
Assigned to:
Martin Poirier (theeth)
Category:
Interface
Status:
Fixed / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Netrender slave node invoked from CLI fills hard drive with blank pictures if master is down
Detailed description
I am using Ubuntu 10.10 64bit with 32bit blender.

The problem I noticed is that if I start the slave node up via the command line, and the master isn't up yet, it endless loops and starts filling my drive (specifically /tmp in this case) with blank (solid black) picture files for each frame.

While not a serious issue per se, perhaps better error handling or command line options could be used to at least stop a runaway slave process from filling the hard drive in heavily scripted environments where the master may be down?

Here is a few lines of the console output:
------------------------------------------
~/blender-2.55-beta-linux-glibc27-i686/blender -b slave-render.blend -a
found bundled python: /home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python
read blend: /home/dan/Documents/blender/blends/slave-render.blend
Fra:0 Mem:2.65M (9.98M, peak 12.63M) | Network render node initiation
Traceback (most recent call last):
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/client.py", line 203, in render
self.render_slave(scene)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/client.py", line 218, in render_slave
slave.render_slave(self, scene.network_render, scene.render.threads)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/slave.py", line 119, in render_slave
conn = clientConnection(netsettings.server_address, netsettings.server_port)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/utils.py", line 117, in clientConnection
if clientVerifyVersion(conn):
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/utils.py", line 130, in clientVerifyVersion
conn.request("GET", "/version")
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 918, in request
self._send_request(method, url, body, headers)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 956, in _send_request
self.endheaders(body)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 914, in endheaders
self._send_output(message_body)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 768, in _send_output
self.send(msg)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 716, in send
self.connect()
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 698, in connect
self.timeout)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/socket.py", line 307, in create_connection
raise error(msg)
socket.error: [Errno 111] Connection refused
Fra:0 Mem:2.65M (9.98M, peak 12.63M) Sce: Ve:0 Fa:0 La:0
Saved: /tmp/0001.png Time: 00:00.10
Fra:0 Mem:2.65M (9.98M, peak 16.10M) | Network render node initiation
Traceback (most recent call last):
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/client.py", line 203, in render
self.render_slave(scene)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/client.py", line 218, in render_slave
slave.render_slave(self, scene.network_render, scene.render.threads)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/slave.py", line 119, in render_slave
conn = clientConnection(netsettings.server_address, netsettings.server_port)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/utils.py", line 117, in clientConnection
if clientVerifyVersion(conn):
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/scripts/io/netrender/utils.py", line 130, in clientVerifyVersion
conn.request("GET", "/version")
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 918, in request
self._send_request(method, url, body, headers)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 956, in _send_request
self.endheaders(body)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 914, in endheaders
self._send_output(message_body)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 768, in _send_output
self.send(msg)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 716, in send
self.connect()
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/http/client.py", line 698, in connect
self.timeout)
File "/home/dan/blender-2.55-beta-linux-glibc27-i686/2.55/python/lib/python3.1/socket.py", line 307, in create_connection
raise error(msg)
socket.error: [Errno 111] Connection refused
Fra:0 Mem:2.65M (9.98M, peak 16.10M) Sce: Ve:0 Fa:0 La:0
Saved: /tmp/0002.png Time: 00:00.01


[... and so on ...]

Followup

Message
  • Date: 2010-11-08 17:34
  • Sender: Dan McGrath
  • Also, bug #24602 and #24601 both have a copy of the slave/master.blend files that I used for calling it from the command line. Although I assume they won't be needed, why not mention them just in case :)
  • Date: 2010-11-10 14:52
  • Sender: Nathan Letwory
  • Assigning to netrender guru.
  • Date: 2010-11-14 23:19
  • Sender: Martin Poirier
  • revision 33066 adds retries on initial connection (10 reties spread over approximately 1 min), so that should help you in the case where the slaves are started a bit before the master.

    For the root of the problem, the images are created because it's using a render engine to access the low level jobs. Once jobs are accessible in Python, that can be fixed (why I moved this to Postponed).

    In the mean time, you can do the following:
    - Set the start and end frame on the same value (1), that way you'll get at most one image.
    OR
    - Set the output path (of the blender renderer, not netrender's path) to a folder you don't have rights. This will error out on write and stop right there.
  • Date: 2010-11-29 18:56
  • Sender: Dan McGrath
  • I can confirm that in at least r33347, the problem has been solved by following your steps.

    Specifically I tested by starting a slave using 1 frame start/stop, which worked as you mentioned by alerting me to the master being down and retrying the 10 times.

    As far as bug reports go, I guess this bug is solved (not including any refinement of the code you had in mine, of course), thanks!
 

Attached Files:

No Files Currently Attached

Changes:

Field Old Value Date By
ResolutionPostponed2010-11-30 13:18theeth
close_date2010-11-30 13:182010-11-30 13:18theeth
status_idOpen2010-11-30 13:18theeth
ResolutionNew2010-11-14 23:19theeth
assigned_tonone2010-11-10 14:52jesterking