Varnish Cache Plus 6.0.8r1 Release

Published March 11, 2021.

About the release

This release, 6.0.8r1, fixes a number of bugs, and introduces a few minor features. The new features include the following:

  • The file VMOD now supports 304 Not Modified.

  • Improvements in the kvstore VMOD’s auto decrementing counters.

  • The new function std.bytes() can convert strings like 1GB to a value of type BYTES.

  • A new function called utils.hash_ignore_vary() can be used to force a hit on any variant that might be in the cache.

  • Improved logging of ykey events.

Bug fixes:

  • Reset the status and response on a retry.

  • synthbackend.mirror()` will now fail transactions where the body couldn’t be fully ingested.

  • Fixed a synthbackend.mirror() race condition were concurrent synthetic backend fetches could interfere with each other, leading to a double free and a crash.

  • Fixed a potential data race when referencing resp.reason in vcl_synth.

  • Fixed a ESI panic when an error is encountered during transmission.

  • Fixed an erroneous short response when a backend stream fails early.

  • Improved watchdog handling. Most notably, only trigger when there is no movement for the highest priority.

  • Fix a problem where the threads_limited counter was incremented when it should not be.

  • Fix panic when using headerplus in an ESI or Edgestash sub requests.

See the change log for a full overview of new features and bug fixes in this and previous versions.

Important information when using synthbackend.mirror() in combination with persisted MSE

The synthbackend.mirror() bug could cause corrupted objects before causing Varnish to crash. When using synthbackend.mirror() together with persisted MSE, these corrupted objects could persist after the crash. If using synthbackend.mirror() together with persisted MSE, it is recommended to clear the cache on upgrade to this version.

Important! Third party VMODs need to be recompiled for 6.0.7r1

The ABI for VMODs changed with 6.0.7r1, so every VMOD older than that, needs to be recompiled to work with the new versions. There is no API breakage, so a simple recompile should be sufficient. If you only use VMODs bundled with Varnish Cache Enterprise, you do not have to do anything, as bundled VMODs are always recompiled.