Hi,

First of all, judging by the code, this is probably unrelated to
scanning media. Only 1 child process should be forked to scan the media
directory.

However, each HTTP request for media is serviced through a newly forked
child process. Requesting a lot of pics at a high rate (some clients
probably do this hidden/automatic or for thumbnail overviews). This
could lead to bad behaviour, since pics must be scaled in some cases.
Scaling requires significant amounts of memory and CPU time. Requesting
pics faster than minidlna can scale them = ~fork bomb (where the bomb is
not dangerous because of the sheer number of processes and then running
out of PIDs – every single process just needs quite some memory). Is
that a possible explanation for the issues you observed, Rinat?

Upstream fixed this bug (referencing Rinat Ibragimov as the reporter,
someone linked this bug report in the upstream bug tracker) on June 13,
2013. The number of concurrently active child processes was limited to 5
at that time. I guess this was part of the 1.1.1 release.

On March 3, 2014, a configuration file option was added so we can now
(as of 1.1.2) configure the maximum number of active child processes.
The default is 50. I can imagine that, depending on the size of pics
served, 50 might be too much to store at the same time (so they can be
scaled down). OTOH, some clients apparently open more than 5
simultaneous connections and misbehave with a setting of only 5. So YMMV
and you should adjust that limit for your use-case.

For some reason the option is not in the Debian minidlna.conf. This
slightly changed snippet from upstream might help (and I hope Benoit can
include something like this with the next upload, seems like it got lost
with general improvements of the file contents):

# maximum number of simultaneous connections
# note: many clients open several simultaneous connections while
# streaming
max_connections=50

TL;DR: This issue is technically fixed in the current sid/testing
package, though it might be required to lower the default limit of 50
active processes and the minidlna.conf option to do that is missing in
Debian.

Cheers,
Florian


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to