[master] ca07c002f Add more release docs for 2018-09 to 'Upgrading'.

Geoff Simmons geoff at uplex.de
Sun Sep 9 22:21:06 UTC 2018


commit ca07c002f4aa8c7e7436c230b0544724eab8f239
Author: Geoff Simmons <geoff at uplex.de>
Date:   Mon Sep 10 00:19:59 2018 +0200

    Add more release docs for 2018-09 to 'Upgrading'.

diff --git a/doc/sphinx/whats-new/upgrading-6.1.rst b/doc/sphinx/whats-new/upgrading-6.1.rst
index f91e6a188..7d3c06168 100644
--- a/doc/sphinx/whats-new/upgrading-6.1.rst
+++ b/doc/sphinx/whats-new/upgrading-6.1.rst
@@ -87,14 +87,36 @@ The documentation in :ref:`users-guide-handling_misbehaving_servers`
 has been expanded to discuss these matters in greater depth, look
 there for more details.
 
-``var2``
---------
-
-**XXX**
+``beresp.filters`` and support for backend response processing with VMODs
+-------------------------------------------------------------------------
+
+The ``beresp.filters`` variable is readable and writable in
+``vcl_backend_response``. This is a space-separated list of modules
+that we call VFPs, for "Varnish fetch processors", that may be applied
+to a backend response body as it is being fetched. In default Varnish,
+the list may include values such as ``gzip``, ``gunzip``, ``esi`` and
+``stream``, depending on how you have set the ``beresp.do_*``
+variables.
+
+This addition makes it possible for VMODs to define VFPs to filter or
+manipulate backend response bodies, which can be added by changing the
+list in ``beresp.filters``. VFPs are applied in the order given in
+``beresp.filters``, and you may have to ensure that a VFP is
+positioned correctly in the list, for example if it can only apply to
+uncompressed response bodies.
+
+This is a new capability, and at the time of release we only know of
+test VFPs implemented in VMODs. Over time we hope that an "ecology" of
+VFP code will develop that will enrich the features available to
+Varnish deployments.
 
 Other changes
 ~~~~~~~~~~~~~
 
+The ``Host`` header is mandatory for HTTP/1.1, as proscribed by the
+HTTP standard. If it is missing, then ``builtin.vcl`` causes a
+synthetic 400 "Bad request" response to be returned.
+
 You can now provide a string argument to ``return(fail("Foo!"))``,
 which can be used in ``vcl_init`` to emit an error message if the VCL
 load fails due to the return.
@@ -153,6 +175,10 @@ Other changes
 
     * ``ping -j``
 
+    * ``backend.list -j``
+
+    * ``help -j``
+
     * **XXX...**
 
     A JSON response in the CLI always includes a timestamp (epoch time in
@@ -190,6 +216,26 @@ Other changes
       :ref:`ref_param_backend_local_error_holddown` or
       :ref:`ref_param_backend_remote_error_holddown`
 
+  * Similarly, we have added a series of counters for better diagnostics
+    of session accept failures (failure to accept a connection from a
+    client). As before, the ``sess_fail`` counter gives the total number
+    of accept failures, and it is now augmented with the ``sess_fail_*``
+    counters. ``sess_fail`` is the sum of the values in ``sess_fail_*``.
+
+    * ``sess_fail_econnaborted``, ``sess_fail_eintr``,
+      ``sess_fail_emfile``, ``sess_fail_ebadf`` and
+      ``sess_fail_enomem``: the number of accept failures with the
+      indicated value of ``errno(3)``. The :ref:`varnish-counters(7)`
+      man page, and the "long descriptions" shown by ``varnishstat``,
+      give possible reasons why each of these may happen, and what
+      might be done to counter the problem.
+
+    * ``sess_fail_other``: number of accept failures for reasons
+      other than those given by the other ``sess_fail_*`` counters.
+      More details may appear in the ``Debug`` entry of the log
+      (:ref:`varnish-counters(7)` shows a ``varnishlog`` invocation
+      that may help).
+
   * In curses mode, the information in the header lines (uptimes and
     cache hit rates) is always reported, even if you have defined a
     filter that leaves them out of the stats table.
@@ -220,11 +266,34 @@ Other changes
 
   * **XXX**
 
+* For all of the utilities that access the Varnish log --
+  ``varnishlog(1)``, ``varnishncsa(1)``, ``varnishtop(1)`` and
+  ``varnishhist(1)`` -- it is now possible to set multiple ``-I`` and
+  ``-X`` command-line arguments.  So you can use multiple include and
+  exclude filters that apply regular expressions to selected log
+  messages.
+
 * Changes for developers:
 
+  * As mentioned above, VMODs can now implement VFPs that can be added
+    to backend response processing by changing ``beresp.filters``.
+    The interface for VFPs is defined in ``cache_filters.h``, and the
+    debug VMOD included in the distribution shows an example of a
+    VFP for rot13.
+
   * The Varnish API soname version (for libvarnishapi.so) has been
     bumped to 2.0.0.
 
+  * When ``PRIV_TASK`` and ``PRIV_TOP`` parameters are defined for a
+    VMOD method or function, space for the ``struct vrt_priv`` object
+    is allocated on the appropriate workspace before invocation -- the
+    task workspace (client or backend) for ``PRIV_TASK``, and the
+    client workspace for ``PRIV_TOP``. So it is no longer necessary
+    for the VMOD code to do the allocation. The address of the
+    allocated object is passed into the invocation. If the address is
+    NULL, then allocation failed due to workspace exhaustion (so your
+    VMOD should check for that).
+
   * We have improved support for the ``STRANDS`` data type, which you
     may find easier to use than the varargs-based ``STRING_LIST``. See
     ``vrt.h`` for details.  :ref:`vmod_blob(3)` has been refactored to


More information about the varnish-commit mailing list