Weekend time is hacking time. This weekend it is about getting 1.5.0 running nicely on Solaris and making sure lighttpd is a first class citizen there.
So here we are again. The previous release is already 12 days old! It already got grey hair.
And again we have a small security bug! It seems, if you get the more popular, more people are looking at your code. This time Mattias Bengtsson and Philip Olausson from secweb.se took a look at the code. They found a small bug that could lead to remote code execution in fastcgi applications. (We wont mention names here.)
Ok. We broke it. And yes it took longer than expected to fix it.
Anyway. It was worth to wait. We fixed lots of bugs in this release. For a complete list of changes see below.
The final fix for bug #948
changed the behavior of the server.error-handler-404.
In the past lighttpd tried to send 404 responses generated by
CGI/FastCGI/SCGI applications to the configured handler. With the current
design of the plugin handling the 404 handler this failed, if the subrequest
used the same backend as the original request (FastCGI -> FastCGI 404 handler).
Starting with 1.4.17, only the original request will trigger the 404 handler.
That means your application has to generate the content for the 404 response
itself. You can no longer rely on the 404 handler for dynamically generated
404 responses.
We all could use some refreshment in this hot summer. So how about a fresh and
shiny new lighttpd release? Sadly the main reasons are again a few security
fixes. (Bad developers, bad!) But we broke it, we fix it. On the other hand we
squeezed in a new cool feature aswell. The
E-Tag
generation is now configurable. So if your files are on a NFS cluster you can
now e.g. disable the inode number usage for the E-Tag.
The reader might wonder now why we delayed the release that long. We actually
tried to get CVE numbers for all the bugs, to avoid confusion later. But so
far we did not succeed in receiving them. As the bugs got publically announced
now, we are forced to release.
We are pleased to announce the release of lighttpd 1.4.14. This is mainly a bug fix release including 2 security fixes. It is recommended to upgrade or at least apply the patches.
lighttpd is used by many well-known sites. The typical scenario is using lighttpd as off-load server to push out static content and leave to complex work to another server.
While running several benchmarks I saw that http_load was getting time outs for some of the connections. This has been seen with all web-servers and different backends in lighttpd as well.
After patchinghttp_load to handle timed out and byte count errors correctly, I could easily separate the time outs from other problems. In one of the last changesets I added a infrastructure to track the time spent in lighttpd for a single connection including the time spent in the different stages of the gthread-aio backend:
Next to the raw-IO performance which is important for heavy, static file transfers the buffered IO performance is more interesting for sites which have a small set of static files which can be kept in the fs-caches.
As we are using hot-caches for this benchmark the “lightness” of the server becomes important. The less syscalls it has to do, the better.
The test-case is made up of 100MByte of files in the size of 10MByte and 100kByte.