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.
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.
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.