doc/sphinx/whats-new/upgrading-7.6.rst
.. _whatsnew_upgrading_7.6:
%%%%%%%%%%%%%%%%%%%%%%%% Upgrading to Varnish 7.6 %%%%%%%%%%%%%%%%%%%%%%%%
In general, upgrading from Varnish 7.5 to 7.6 should not require any changes besides the actual upgrade.
The changes mentioned below are considered noteworthy nevertheless:
When varnishd runs in a different PID namespace on Linux, typically in a
container deployment, VSM_NOPID must be added to the environment of other
containers running programs attaching themselves to varnishd's shared
memory. This will otherwise fail liveness checks performed by VSM consumers.
Warning about failed memory locking
The ``Warning: mlock() of VSM failed`` message is now emitted when locking of
shared memory segments (via ``mlock(2)``) fails. As Varnish performance may be
severely impacted if shared memory segments are not resident in RAM, users
seeing this message are urged to review the ``RLIMIT_MEMLOCK`` resource control
as set via ``ulimit -l`` or ``LimitMEMLOCK`` with ``systemd(1)``. This is not
new at all, just now the warning has been added to make administrators more
aware.
.. _whatsnew_upgrading_7.6_linux_jail:
Warning if tmpfs is not used
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Linux (when the new ``linux`` jail is used), the ``Working directory not
mounted on tmpfs partition`` warning is now emitted if the working directory is
found to reside on a file system other than ``tmpfs``. While other file systems
are supported (and might be the right choice where administrators understand how
to avoid blocking disk IO while ``varnishd`` is writing to shared memory),
``tmpfs`` is the failsafe option to avoid performance issues.
Upgrading VCL
=============
.. _RFC9110: https://www.rfc-editor.org/rfc/rfc9110.html#section-14.4
An issue has been addressed in the ``builtin.vcl`` where backend responses
would fail if they contained a ``Content-Range`` header when no range was
requested. According to `RFC9110`_, this header should just be ignored, yet
some Varnish users might prefer stricter checks. Thus, we decided to change
the ``builtin.vcl`` only and users hitting this issue are advised to call
``vcl_beresp_range`` from custom VCL.
Changes for developers and VMOD authors
=======================================
The VDP filter API has changed. See :ref:`whatsnew_changes_7.6_VDP` for details.
The signature of ``ObjWaitExtend()`` has changed. See
:ref:`whatsnew_changes_7.6_Obj` for details.
``varnishd`` now creates a ``worker_tmpdir`` which can be used by VMODs for
temporary files. See :ref:`ref-vmod-event-functions` for details.
*eof*