Commit 2a84483f authored by Dridi Boukelmoune's avatar Dridi Boukelmoune

whats-new: Add upgrade notes

parent d67bf402
**Note: This is a working document for a future release, with running
updates for changes in the development branch. For changes in the
released versions of Varnish, see:** :ref:`whats-new-index`
.. _whatsnew_upgrading_CURRENT: .. _whatsnew_upgrading_CURRENT:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Upgrading to Varnish **$NEXT_RELEASE** Upgrading to Varnish **$NEXT_RELEASE**
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
**XXX: how to upgrade from previous deployments to this Logs
version. Limited to work that has to be done for an upgrade, new ====
features are listed in "Changes". Explicitly mention what does *not*
have to be changed, especially in VCL. May include, but is not limited The optional reason field of ``BackendClose`` records changed from a
to:** description (for example "Receive timeout") to a reason tag (for example
``RX_TIMEOUT``). This will break VSL queries based on the reason field.
Using a tag should however make queries more reliable::
# before
varnishlog -q 'BackendClose ~ "Receive timeout"'
# after
varnishlog -q 'BackendClose[4] eq RX_TIMEOUT'
Such queries would no longer break when a description is changed.
Timeouts
========
The value zero for timeouts could mean either timing out immediately, never
timing out, or not having a value and falling back to another. The semantic
changed so zero always means non-blocking, timing out either immediately after
checking whether progress is possible, or after a millisecond in parts where
this can't practically be done in a non-blocking fashion.
In order to disable a timeout, that is to say never time out, the value
``INFINITY`` is used (or tested with ``isinf()``).
In the places where a timeout setting may fall back to another value, like
VCL variables falling back to parameters, ``NAN`` is used to convey the lack
of timeout setting.
VCL
~~~
All the timeouts backed by parameters can now be unset, meaning that setting
the value zero no longer falls back to parameters.
Parameters
~~~~~~~~~~
* Elements of VCL that have been removed or are deprecated, or whose All the timeout parameters that can be disabled are now documented with the
semantics have changed. ``timeout`` flag, meaning that they can take the special value ``never`` for
that purpose::
* -p parameters that have been removed or are deprecated, or whose varnishadm param.set pipe_timeout never
semantics have changed.
* Changes in the CLI. VRT
~~~
* Changes in the output or interpretation of stats or the log, including For VMOD authors, it means that the ``vtim_dur`` type expects ``INFINITY`` to
changes affecting varnishncsa/-hist/-top. never time out or ``NAN`` to not set a timeout.
* Changes that may be necessary in VTCs or in the use of varnishtest. For VMOD authors managing backends, there is one exception where a timeout
fallback did not change from zero to ``NAN`` in ``struct vrt_backend``. The
``vtim_dur`` fields must take a negative value in order to fall back to the
respective parameters due to a limitation in how VCL is compiled.
* Changes in public APIs that may require changes in VMODs or VAPI/VUT As a convenience, a new macro ``VRT_BACKEND_INIT()`` behaves like ``INIT_OBJ``
clients. but initializes timeouts to a negative value.
*eof* *eof*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment