Varnish Cache Plus 6.0.9r5 Release

Published April 28, 2022.

About the release

This release contains several bug fixes and some new features.

Note: The 6.0.9r5-1 packages released on 2022-04-28 contained a change to the way PID-files were handled in the package-included varnishd.service systemd service file. These changes caused upgrade issues on some systems depending on if and how the varnishd.service had local customizations. This was due to a missing -P %t/%N/ command line option in the options given to varnishd in the customized service files, causing varnishd to not produce the PID-file systemd was told to expect. The subsequent 6.0.9r5-2 packages released on 2022-04-29 have these service file changes reverted back to the state prior to this release.

New features:

  • A new set of functions in VMOD ykey to get statistics of objects with specific keys. This feature is experimental, and must not be used on user requests.

  • The new libadns and VMOD activedns together make it easier to manage DNS and name resolution inside of Varnish. They are designed to be used with VMOD udo and its new features.

  • VMOD udo now supports dynamic backends with sharding.

  • VMOD udo now has three new functions, .get_identifier(), .self_identify(), and .self_is_next() which can be used to implement self routing clusters.

  • There is a new experimental cluster.vcl which implements self routing clusters. Here experimental means that it has not seen much real-world testing, and that its functionality might change slightly in the next releases. Use at your own risk, and carefully read change logs and new release announcements.

  • VMOD stat is now aware of dynamic udo backend names in its Prometheus format.

  • VMOD headerplus now has an experimental write_req0() function which can be used to make label VCLs start from a modified set of headers and URL.

  • You can now insist that backend fetches starts with a fresh connection by calling utils.force_fresh().

  • In varnishstat gauges will now display the number zero instead of the result of an underflow. This change is mainly useful in benchmarking scenarios with synthetic tests. A new key binding (r) and a new option (-r) has been added to override this.

  • There is a new option for probe-proxy.vcl called call_backend_response.

  • There is a new function remove_duplicate in VMOD cookieplus, and the cookieplus.get() function has a new parameter to select the last or first occurrence of a cookie.

  • The Slicer now handles range request better when MSE is involved.

Bugs fixed

  • Workspace allocation handling has improved in VMODs rewrite and var.

  • When a client transaction ends after leaving the waiting list, some missing logs records are now recorded.

  • VMOD deviceatlas now handles the databases’ lifetimes in a correct way.

  • A VMOD image memory leak when doing error handling has been plugged.

  • Error reporting in VMOD mse on IO errors has improved.

See the changelog for the complete list of changes in this release.