[erlang-questions] yaws 1.97
Claes Wikstrom
klacke@REDACTED
Sat Oct 19 13:09:53 CEST 2013
Hi all,
We're happy to announce Yaws 1.97
This release contains the usual mix of small improvements, generally
just making Yaws more and more of a rock solid web server.
Code on github, https://github.com/klacke/yaws
Releases and relnotes on http://yaws.hyber.org
Important DOS note: The OTP file:sendfile is buggy, so all users of
send_file are susceptible to this. If you use Yaws in production,
carefully ponder the text below.
Christopher Faulet worked this, and his excellent
checkin comment says
-------
Add the way to configure the version of sendfile method to use
Now, at compile time, we only check if sendfile
syscall and file:sendfile/5 are supported. Then,
dynamically, we can configure which version to use.
This can be done using the directive large_file_sendfile.
Supported values are:
* erlang: if supported, use file:sendfile/5
* yaws: if supported, use the Yaws sendfile linked-in driver
* disable: do not use any sendfile method, but gen_tcp:send/2
If an unsupported method is configured,
we fall back on gen_tcp:send/2.
file:sendfile/5 implementation is buggy (in R15 & R16).
When async-threads are enabled, in efile driver,
the tcp socket is set in blocking mode and the
sendfile syscall is executed on an async-thread.
So an unresponsive client could block it for a very long
time and therefore block the async-thread.
In this way, all async-threads could be easily blocked.
So, by default, the use of sendfile is disable.
More information about the erlang-questions
mailing list