Varnish Changelog

What's new in Varnish 4.0.2

Oct 9, 2014
  • New:
  • [varnishlog] -k argument is back. (exit after n records)
  • [varnishadm] vcl.show is now listed in help.
  • [libvmod-std] New function strstr() for matching substrings.
  • server.(hostname|identity) is now available in all VCL functions.
  • VCL variable type BYTES was added.
  • workspace_client default is now 9k.
  • [varnishstat] Update interval can now be subsecond.
  • Document that reloading VCL does not reload a VMOD.
  • Guru meditation page is now valid HTML5.
  • [varnishstat] hitrate calculation is back.
  • New parameter group_cc adds a GID to the grouplist of VCL compiler sandbox.
  • Parameter shm_reclen is now an alias for vsl_reclen.
  • Workspace overflows are now handled with a 500 client response.
  • VCL variable type added: HTTP, representing a HTTP header set.
  • It is now possible to return(synth) from vcl_deliver.
  • [varnishadm] vcl.show now has a -v option that output the complete set of VCL and included VCL files.
  • RHEL7 packaging (systemd) was added.
  • [libvmod-std] querysort() fixed parameter limit has been lifted.
  • Fix small memory leak in ESI parser.
  • Fix unreported race/assert in V1D_Deliver().
  • Bugs fixed:
  • 1553 - Fully reset workspace (incl. Vary state) before reusing it.
  • 1551 - Handle workspace exhaustion during purge.
  • 1591 - Group entries correctly in varnishtop.
  • 1592 - Bail out on workspace exhaustion in VRT_IP_string.
  • 1538 - Relax VMOD ABI check for release branches.
  • 1584 - Don't log garbage/non-HTTP requests. [varnishncsa]
  • 1407 - Don't rename VSM file until child has started.
  • 1466 - Don't leak request structs on restart after waitinglist.
  • 1580 - Output warning if started without -b and -f. [varnishd]
  • 1583 - Abort on fatal sandbox errors on Solaris. (Related: 1572)
  • 1585 - Handle fatal sandbox errors.
  • 1572 - Exit codes have been cleaned up.
  • 1569 - Order of symbols should not influence compilation result.
  • 1579 - Clean up type inference in VCL.
  • 1578 - Don't count Age twice when computing new object TTL.
  • 1574 - std.syslog() logged empty strings.
  • 1555 - autoconf editline/readline build issue.
  • 1568 - Skip NULL arguments when hashing.
  • 1567 - Compile on systems without SO_SNDTIMEO/SO_RCVTIMEO.
  • 1512 - Changes to bereq are lost between v_b_r and v_b_f.
  • 1563 - Increase varnishtest read timeout.
  • 1561 - Never call a VDP with zero length unless done.
  • 1562 - Fail correctly when rereading a failed client request body.
  • 1521 - VCL compilation fails on OSX x86_64.
  • 1547 - Panic when increasing shm_reclen.
  • 1503 - Document return(retry).
  • 1581 - Don't log duplicate Begin records to shmlog.
  • 1588 - Correct timestamps on pipelined requests.
  • 1575 - Use all director backends when looking for a healthy one.
  • 1577 - Read the full request body if shunted to synth.
  • 1532 - Use correct VCL representation of reals.
  • 1531 - Work around libedit bug in varnishadm.

New in Varnish 3.0.3 (Mar 27, 2013)

  • 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 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.
  • varnishstat:
  • Add json output (-j).
  • 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.

New in Varnish 2.1.2 (May 5, 2010)

  • The only change is a one line change that fixes a bug introduced in 2.1.2 when adding Range support. This bug which would append garbage to objects larger than the chunk size, by default 128k. This only affects content transfered with chunked encoding. Browsers would do the right thing due to Content-Length, but some load balancers would get very confused.

New in Varnish 2.1.1 (Apr 26, 2010)

  • Experimental support for the Range header, must be enabled with the http_range_support parameter.
  • A bug in workspace rollback prevented ESI from working correctly in all situations. This is now fixed.
  • A race condition and a deadlock in the critbit hasher have been fixed.
  • HEAD requests are no longer converted to GET requests for pass and pipe.
  • Support for completely obliterating objects including all variants («nuke»).

New in Varnish 2.1.0 (Mar 24, 2010)

  • Experimental support for persistent cache
  • The regular expression engine is now PCRE
  • Saint mode, where we try to grace an object.
  • A more scalable hashing method called critbit
  • Increased scalability, removing a limitation of maximum 64k connections
  • obj_workspace is removed, this is now scaled automatically
  • Hashing and client IP based directors

New in Varnish 2.0.6 (Jan 14, 2010)

  • Fix off-by-one error in ESI handling
  • Bug fixes related to session lingering
  • Backend probes should now work correctly with more servers
  • Portability fixes
  • Make it possible to specify the per-thread stack size, useful for 32 bit systems

New in Varnish 2.0.4 (Apr 6, 2009)

  • Serve graced objects if the backend is unhealthy.
  • Portability fixes for Solaris, MacOS X/Darwin and NetBSD
  • Documentation updates
  • Added server.hostname and server.identity to VCL.
  • Fixed a problem where we would sleep for far too long when we would run out of file descriptors.
  • Add support for processing binary objects with ESI.