Changes from 3.0.2 to 3.0.3
Note: In between 3.0.2 and 3.0.3 the VCL truth value for empty strings changed.
Please see Bug #1406 for the details.
Varnishd
- Fix a race on the n_sess counter. This race made varnish do excessive
session workspace allocations. Bug #897.
- Fix some crashes in the gzip code when it runs out of memory. Bug #1037.
Bug #1043. Bug #1044.
- Fix a bug where the regular expression parser could end up in an infinite
loop. Bug #1047.
- Fix a memory leak in the regex code.
- DNS director now uses port 80 by default if not specified.
- Introduce idle_send_timeout and increase default value for send_timeout
to 600s. This allows a long send timeout for slow clients while still being
able to disconnect idle clients.
- Fix an issue where <esi:remove> did not remove HTML comments. Bug #1092.
- Fix a crash when passing with streaming on.
- Fix a crash in the idle session timeout code.
- Fix an issue where the poll waiter did not timeout clients if all clients
were idle. Bug #1023.
- Log regex errors instead of crashing.
- Introduce pcre_match_limit, and pcre_match_limit_recursion parameters.
- Add CLI commands to manually control health state of a backend.
- Fix an issue where the s_bodybytes counter is not updated correctly on
gunzipped delivery.
- Fix a crash when we couldn't allocate memory for a fetched object.
Bug #1100.
- Fix an issue where objects could end up in the transient store with a
long TTL, when memory could not be allocated for them in the requested
store. Bug #1140.
- Activate req.hash_ignore_busy when req.hash_always_miss is activated.
Bug #1073.
- Reject invalid tcp port numbers for listen address. Bug #1035.
- Enable JIT for better performing regular expressions. Bug #1080.
- Return VCL errors in exit code when using -C. Bug #1069.
- Stricter validation of acl syntax, to avoid a crash with 5-octet IPv4
addresses. Bug #1126.
- Fix a crash when first argument to regsub was null. Bug #1125.
- Fix a case where varnish delivered corrupt gzip content when using ESI.
Bug #1109.
- Fix a case where varnish didn't remove the old Date header and served
it alongside the varnish-generated Date header. Bug #1104.
- Make saint mode work, for the case where we have no object with that hash.
Bug #1091.
- Don't save the object body on hit-for-pass objects.
- n_ban_gone counter added to count the number of "gone" bans.
- Ban lurker rewritten to properly sleep when no bans are present, and
otherwise to process the list at the configured speed.
- Fix a case where varnish delivered wrong content for an uncompressed page
with compressed ESI child. Bug #1029.
- Fix an issue where varnish runs out of thread workspace when processing
many ESI includes on an object. Bug #1038.
- Fix a crash when streaming was enabled for an empty body.
- Better error reporting for some fetch errors.
- Small performance optimizations.
varnishncsa
- Support for tn in varnishncsa format strings.
- Add new format: %{VCL_Log:foo}x which output key:value from std.log() in
VCL.
- Add user-defined date formatting, using %{format}t.
varnishtest
- resp.body is now available for inspection.
- Make it possible to test for the absence of an HTTP header. Bug #1062.
- Log the full panic message instead of shortening it to 512 characters.
Other
- Documentation updates.
- Bump minimum number of threads to 50 in RPM packages.
- RPM packaging updates.
- Fix some compilation warnings on Solaris.
- Fix some build issues on Open/Net/DragonFly-BSD.
- Fix build on FreeBSD 10-current.
- Fix libedit detection on *BSD OSes. Bug #1003.