Upgrading to Varnish 7.2

varnishd

Parameters

The following parameters are deprecated:

  • vcc_allow_inline_c

  • vcc_err_unref

  • vcc_unsafe_path

They can still be set as individual boolean parameters. The deprecated aliases will be removed in a future release.

They are replaced by the vcc_feature bits parameter:

  • allow_inline_c

  • err_unref (enabled by default)

  • unsafe_path (enabled by default)

The following commands are equivalent:

param.set vcc_err_unref off
param.set vcc_feature -err_unref

Identity

The server identity must be a valid HTTP token, which may pose a problem to existing setups. For example varnishd -i "edge server 1" is no longer accepted. You can use something like varnishd -i "edge-server-1" instead.

VCL

Varnish generates a Via header and forwards it to the backend by default. This can be prevented for example in vcl_recv or vcl_backend_fetch.

sub vcl_recv {
    unset req.http.via;
}

sub vcl_backend_fetch {
    unset bereq.http.via;
}

The Via header is generated with the server.identity variable for the received-by field. See rfc9110_ for a description of the Via header.

A resp.http.via header is no longer overwritten by varnish, but rather appended to.

VMODs

Cookies generated by vmod_cookie used to have a trailing semi-colon that goes against the recommendations from rfc6265. This should not pose a problem, unless a piece of VCL code or a backend have come to rely on this incorrect behavior.

varnishlog

The Begin and Link log records have an optional 4th field for the sub-request level. This may break log processors, log queries or NCSA formats that expect those records to have exactly 3 fields.

varnishstat

The MAIN.fetch_no_thread counter is gone, it never worked. Track the MAIN.bgfetch_no_thread counter instead.

Changes for developers and VMOD authors

The functions VRT_AddVDP(), VRT_AddVFP(), VRT_RemoveVDP() and VRT_RemoveVFP() are deprecated. Use VRT_AddFilter() to add a pair (VFP and VDP) and VRT_RemoveFilter() to remove it. A filter pair needs at least one member of the pair.

The varnishtest -i option no longer works outside of a Varnish source tree. There shouldn’t be a reason to use -i outside of the Varnish test suite.

eof