[master] 31c58c98c doc/changes.rst TLC
Nils Goroll
nils.goroll at uplex.de
Sun Sep 14 13:14:06 UTC 2025
commit 31c58c98c1a6695adc4914bbe946dcadf9e38844
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Sun Sep 14 15:12:05 2025 +0200
doc/changes.rst TLC
diff --git a/doc/changes.rst b/doc/changes.rst
index f3943da29..82e52aef1 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -41,10 +41,58 @@ Varnish-Cache 8.0 (2025-09-15)
.. PLEASE keep this roughly in commit order as shown by git-log / tig
(new to old)
+.. _4336: https://github.com/varnishcache/varnish-cache/pull/4336
+
+* A regression has been fixed which prevented vcl controlled custom Range
+ requests with ``http_range_support`` enabled. (`4336`_)
+
+.. _4245: https://github.com/varnishcache/varnish-cache/pull/4245
+
+* The ``Content-Length`` response header is now also sent in response to all
+ ``HEAD`` requests. (`4245`_)
+
* ``builtin.vcl`` has been updated to return a synthetic 501 response and
close the connection when receiving requests with an unknown/unsupported
http method instead of piping them.
+* VCL control has been added over the logic to handle ``304 Not Modified``
+ responses to backend requests. The subroutine ``vcl_backend_refresh`` is now
+ getting called with ``304`` response objects as ``beresp`` and the stale
+ object to potentially re-use as ``obj_stale``. From this subroutine,
+ ``return(merge)`` will invoke the header merging and re-use of the stale
+ object body which so far was the only option. But besides the usual options to
+ fail, abandon, retry or return an error, it now also offers the options to
+ return the stale object as-is (``return(obj_stale)``) or to return whatever
+ headers are received or created in ``beresp.http`` using ``return(beresp)``.
+ The latter option allows for almost full control over the response headers to use
+ with the stale object, with the exception of the ``Content-Length``,
+ ``Content-Encoding``, ``Etag`` and ``Last-Modified`` headers, which are copied
+ from the stale object for correctness.
+
+ Various helper subroutines have been added to ``builtin.vcl`` with code to
+ check for various corner cases. Besides this, ``builtin.vcl`` should result in
+ unchanged default behavior for ``304`` responses.
+
+* Handling of request coalescing using the `waitinglist` mechanism has been
+ changed fundamentally in order to allow for all requests waiting in parallel
+ to handle a newly arriving cache entry object as successfully revalidated - in
+ other words, cases where a response with a ttl and grace value of 0 seconds
+ still serves multiple client requests.
+
+ The new implementation addresses long standing issues like "waitinglist
+ serialization" and "spurious waitinglist rushes".
+
+* An explicit ``stop`` if the ``varnishd`` process now explicitly waits for all
+ VCL references to be returned, which is the same as waiting for all ongoing
+ transactions to complete. There is currently no timeout. If this new behavior
+ is unwanted, the worker process can still be terminated externally.
+
+.. _4380: https://github.com/varnishcache/varnish-cache/issues/4380
+.. _VSV17: https://varnish-cache.org/security/VSV00017.html
+
+* The `reverse rapid reset` vector, also known as `HTTP/2 Made You Reset Attack`, has
+ been addressed (`VSV17`_, `4380`_).
+
* The default value for ``ban_any_variant`` is now ``0``. This means that
during a lookup, only the matching variants of an object will be evaluated
against the ban list.
More information about the varnish-commit
mailing list