[mod_python] requests are blocking when using req.sendfile

Graham Dumpleton graham.dumpleton at gmail.com
Tue Sep 23 04:05:09 EDT 2008


And what happens if you stop using an older version of mod_python and
use the latest version?

In other words, upgrade to mod_python 3.3.1 and then we may be able to
help. The older versions have various bugs in them and there is no
point us trying to debug an issue that may have already been fixed.

Graham

2008/9/23 Matt Barnicle <mattb at wageslavery.org>:
> i'm having an issue with our site, which seems to be directly
> related to using req.sendfile.  on our site, we have secure music
> downloads.  the user has to go through a series of steps in order to
> gain access to the music (fyi, we run a legitimate service, not a
> pirate or warez site).  just some background info..  basically we
> can't offer a direct download link or the security can be bypassed.
> so downloading is done through the handler, which runs the checks,
> and if everything looks good, the file is sent to the browser using
> req.sendfile with the local path to the file on disk.
>
> it works..  but the problem is, requests start backing up whenever a
> download is being sent.  it looks like new requests are being sent
> to the apache process that is tied up sending the download file.  i
> don't understand why this is happening though.  i would think that
> while it's sending the file, no new requests would be queued in that
> process.  i can verify this easily by downloading a file, and while
> it's downloading, clicking on a link on the site from the same
> window in which i downloaded in.  the request will stay in the WAIT
> state (according to mod_status) until the download is finished, then
> the page will load and the queue will clear up.  now if i change the
> download link to a static file, served directly by apache, this
> problem disappears.
>
> what can i do to fix this?  it's a major issue right now.  many
> times a day you can go to the site and it will hang for perhaps 1 to
> 3 minutes, then it will load, due to the above described situation.
>
> version notes:
>
> CentOS release 5 (Final)
> apache 2.2.3
> mod_python 3.2
>
> using prefork compiled into apache.  misc apache configuration:
>
> KeepAlive Off
>
> <IfModule prefork.c>
>  StartServers       8
>  MinSpareServers    5
>  MaxSpareServers   20
>  ServerLimit      256
>  MaxClients       256
>  MaxRequestsPerChild  4000
> </IfModule>
>
> thank you for your time and consideration..
>
> - m@
>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>


More information about the Mod_python mailing list