[master] 0338875b0 doc/changes.rst: Document all relevant changes (I hope) since 7.6.1

Nils Goroll nils.goroll at uplex.de
Wed Mar 12 16:59:06 UTC 2025


commit 0338875b06ce8120a34ed6bb6860a37d30eb29c8
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Wed Mar 12 17:10:46 2025 +0100

    doc/changes.rst: Document all relevant changes (I hope) since 7.6.1

diff --git a/doc/changes.rst b/doc/changes.rst
index 0df080469..115f39104 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -41,6 +41,15 @@ Varnish Cache NEXT (2025-03-15)
 .. PLEASE keep this roughly in commit order as shown by git-log / tig
    (new to old)
 
+.. _4281: https://github.com/varnishcache/varnish-cache/issues/4281
+
+* For http/2, normal client behavior like timeouts or closed connection was
+  logged with a ``SessError`` tag and ``ENHANCE_YOUR_CALM`` in additional
+  ``Debug`` log records. This behavior was misleading and has been corrected
+  (`4281`_).
+
+.. _4282: https://github.com/varnishcache/varnish-cache/issues/4282
+
 * (Add a prominent note to announcement) Timestamps for http/2 requests have
   been corrected and made similar to how they are taken for http/1.
 
@@ -57,16 +66,117 @@ Varnish Cache NEXT (2025-03-15)
   NOTE that after upgrading Varnish-Cache, processing and response times for
   http/2 will now be reported as worse than before the upgrade, potentially
   *much* worse. This is **NOT** a performance regression, but rather due to the
-  corrected timestamps, which arguably were wrong for http/2.
+  corrected timestamps, which arguably were wrong for http/2. (`4282`_)
+
+.. _4283: https://github.com/varnishcache/varnish-cache/issues/4283
+
+* For http/2, an issue has been fixed where stream errors could indirectly cause
+  connection errors. (`4283`_)
+
+* http/2 error detail reporting in ``Debug`` log records has been clarified:
+  Connection errors are now prefixed with ``H2CE_``, and stream errors with
+  ``H2SE_``, respectively.
 
-.. MISSING commits
+* http/2 ``BogoHeader`` log records now contain the first offending byte value
+  in hex.
+
+* ``varnishtest`` can now send arbitrary http/2 settings frames and arbitrary
+  PROXY2 tlvs.
+
+* Pressing the ``0`` key in ``varnishstat`` interactive (curses) mode now resets
+  averages.
+
+* ``varnishtest`` has been changed to always set a ``VARNISH_DEFAULT_N``
+  environment variable to ensure that ``varnish`` invoked from ``varnishtest``
+  always has a valid workdir.
+
+.. _4276: https://github.com/varnishcache/varnish-cache/issues/4276
+
+* An issue has been fixed which could cause a crash when ``varnishd`` receives
+  an invalid ``Content-Range`` header from a backend. (`4276`_)
 
 * The ``hitmiss`` and ``hitpass`` handling indicators have been added to the
   ``Varnish:handling`` format of ``varnishncsa``.
 
-* The scope of VCL variables `req.is_hitmiss` and `req.is_hitpass` is now restricted
-  to `vcl_miss, vcl_deliver, vcl_pass, vcl_synth` and `vcl_pass, vcl_deliver, vcl_synth`
-  respectively.
+* All bitfield parameters (like ``feature`` or ``vsl_mask``) now support the
+  special values ``all`` and ``none``.
+
+  The output format of ``varnishadm param.show`` has been adjusted accordingly.
+
+* Behavior of the VCL ``include`` statement with the ``+glob`` option has been
+  clarified to not search directories in ``vcl_path``.
+
+* The ``linux`` jail gained control of transparent huge pages (THP) settings:
+  The ``transparent_hugepage`` suboption can be set to ``ignore`` to do nothing,
+  ``enable`` to enable THP (actually, disable the disable), ``disable`` to
+  disable THP or ``try-disable`` to try do disable, but not emit an error if
+  disabling fails. ``try-disable`` is the default.
+
+.. _4273: https://github.com/varnishcache/varnish-cache/issues/4273
+
+* Error handling from the jail subsystem has been streamlined to avoid some
+  confusing and/or contradictory error messages as well as turn assertion
+  failures into error messages (`4273`_)
+
+* ``miniobj.h``: Helper macros ``SIZEOF_FLEX_OBJ()`` and ``ALLOC_FLEX_OBJ()``
+  have been added to facilitate use of structs with flexible array members.
+
+.. _3963: https://github.com/varnishcache/varnish-cache/issues/3963
+
+* Validation of the ``PROXY2`` ``PP2_TYPE_AUTHORITY`` TLV sent with ``.via``
+  backends has been corrected: IP addresses are no longer accepted as an
+  authority and port numbers are automatically removed. (`3963`_)
+
+.. _3757: https://github.com/varnishcache/varnish-cache/issues/3757
+
+* Handling of curses errors in the interactive mode of ``varnishstat``,
+  ``varnishtop`` and ``varnishhist`` has been streamlined and one wrong
+  assertion has been fixed. (`3757`_)
+
+.. not mentioning #4260 because it was introduced within this release cycle with
+   818ca099105e3ebe1d96fb8deaa91aed6ff1280e
+
+.. _4228: https://github.com/varnishcache/varnish-cache/issues/4228
+
+* The ``Content-Length`` header is now consistently removed after ``unset
+  bereq.body`` on the backend side. (`4228`_)
+
+.. _2735: https://github.com/varnishcache/varnish-cache/issues/2735
+
+* The new ``http_req_overflow_status`` parameter now allows to optionally send a
+  response with a status between ``400`` and ``499`` (inclusive) if a request
+  exceeds ``http_req_size``.  The default of ``0`` keeps the existing behavior
+  to just close the connection in this case. (`2735`_)
+
+.. _4142: https://github.com/varnishcache/varnish-cache/pull/4142
+.. _4259: https://github.com/varnishcache/varnish-cache/pull/4259
+
+* Internal handling of iterations on directors (like the cli command
+  ``backend.list`` command) has been improved to better interoperate with
+  concurrent director creation and destruction operations, avoiding most
+  deadlocks in this area (`4142`_, some cases remain for now, see `4259`_).
+
+.. _4253: https://github.com/varnishcache/varnish-cache/pull/4253
+
+* The new ``ban_any_variant`` parameter allows to configure the maximum number
+  of possibly non matching variants evaluated against the ban list during
+  lookup. The default value of 10000 avoids excessive time spent for ban checks
+  during lookups, which could cause noticeable delays for cases with a very high
+  number of bans and/or variants (in the 1000s).
+
+  Setting ``ban_any_variant`` to ``0`` changes the behavior of the lookup-time
+  ban check to only consider matching objects for tests against the ban list,
+  which can be considered a bugfix, depending on the exact interpretation of the
+  semantics of ban expressions with regards to variants. ``0`` will become the
+  new default in a future release of Varnish-Cache. (`4253`_)
+
+.. _3528: https://github.com/varnishcache/varnish-cache/pull/3528
+
+* ``varnishncsa`` now handles headers unset and changed from VCL more
+  consistently: request headers are logged as they were received from the client
+  and as they were sent to the backend, while response headers are logged as
+  they were sent to the client and as they were received from the backend
+  (`3528`_)
 
 * Two fields have been added to the VMOD data registered with varnish-cache:
 
@@ -77,7 +187,7 @@ Varnish Cache NEXT (2025-03-15)
   - ``version`` is intended as a more user friendly identifier as to which
     version of a vmod a binary represents.
 
-  Panics and the ``debug.vmod`` CLI command output now contain these
+  The panic output and the ``debug.vmod`` CLI command output now contain these
   identifiers.
 
   Where supported by the compiler and linker, the ``vcs`` identifier is also
@@ -104,10 +214,44 @@ Varnish Cache NEXT (2025-03-15)
   an attempt is made to extract ``PACKAGE_STRING`` from an automake
   ``Makefile``, otherwise ``NOVERSION`` is used as the version identifier.
 
+* Connection pools are now cleaned up asynchronously.
+
+.. _4233: https://github.com/varnishcache/varnish-cache/pull/4233
+
+* A concurrency issue in the backend connection queuing feature as configured
+  through the ``backend_wait_*`` parameters and ``wait_*`` backend attributes
+  has been fixed which could lead to under-utilization of the allowed number of
+  backend connections. (`4233`_)
+
+* An edge case in director handling has been fixed which could lead to premature
+  retirement of backends during assignments.
+
+* A new facility has been added allowing transport delivery functions to
+  disembark the worker thread which had been handling a request's VCL code
+  during delivery by returning ``VTR_D_DISEMBARK`` from the ``vtr_deliver_f``
+  function.
+
+  This will enable future optimizations to make transport protocol code more
+  efficient.
+
+  To enable this facility, a new request processing step ``finish`` has been
+  added once delivery is complete.
+
+* VCL now supports ``unset req.grace`` and ``unset req.ttl`` to reset the
+  respective variables to the "no effect" value, which is also the default.
+
 * The scope of VCL variables ``req.is_hitmiss`` and ``req.is_hitpass`` is now
   restricted to ``vcl_miss, vcl_deliver, vcl_pass, vcl_synth`` and ``vcl_pass,
   vcl_deliver, vcl_synth`` respectively.
 
+.. _4201: https://github.com/varnishcache/varnish-cache/issues/4201
+
+* The backend ``happy`` VSC bitfield is now set to all ones for backends with no
+  configured probe. (`4201`_)
+
+* The acceptor code has been refactored for basic support of pluggable
+  acceptors.
+
 ================================
 Varnish Cache 7.6.1 (2024-11-08)
 ================================


More information about the varnish-commit mailing list