This release, 6.0.8r1, fixes a number of bugs, and introduces a few minor features. The new features include the following:
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.
Reset the status and response on a retry.
synthbackend.mirror()` will now fail transactions where the body couldn’t be fully ingested.
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 erraneous 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.
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
synthbackend.mirror() together with persisted MSE, it is
recommended to clear the cache on upgrade to this version.
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.