Bug 245104 - www/varnish6: Update to 6.4.0
Summary: www/varnish6: Update to 6.4.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Mark Felder
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-27 15:54 UTC by Juraj Lutter
Modified: 2020-04-10 20:10 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (feld)


Attachments
update varnish6 to 6.4.0 (1.33 KB, patch)
2020-03-27 15:54 UTC, Juraj Lutter
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Juraj Lutter freebsd_committer freebsd_triage 2020-03-27 15:54:15 UTC
Created attachment 212759 [details]
update varnish6 to 6.4.0

Hi,

please find the patch attached, it updates www/varnish6 to 6.4.0.

Changelog for 6.4.0:
The MAIN.sess_drop counter is gone.

New configure switch: --with-unwind. Alpine linux appears to offer a libexecinfo implementation that crashes when called by Varnish, this offers the alternative of using libunwind instead.

backend none was added for "no backend".

std.rollback(bereq) is now safe to use, fixed bug 3009

Fixed varnishstat, varnishtop, varnishhist and varnishadm handling INT, TERM and HUP signals (bugs 3088 and 3229)

The hash algorithm of the hash director was changed, so backend selection will change once only when upgrading. Users of the hash director are advised to consider using the shard director, which, amongst other advantages, offers more stable backend selection through consistent hashing.

Log records can safely have empty fields or fields containing blanks if they are delimited by "double quotes". This was applied to SessError and Backend_health.

It is now possible for VMOD authors to customize the connection pooling of a dynamic backend. A hash is now computed to determine uniqueness and a backend declaration can contribute arbitrary data to influence the pool.

The option varnishtest -W is gone, the same can be achieved with varnishtest -p debug=+witness. A witness.sh script is available in the source tree to generate a graphviz dot file and detect potential lock cycles from the test logs.

The Process timestamp for vcl_synth {} was wrongly issued before the VCL subroutine, now it gets emitted after VCL returns for consistency with vcl_deliver {}.

Latencies for newly created worker threads to start work on congested systems have been improved.

VRB_Iterate() signature has changed

VRT_fail() now also works from director code

Deliberately closing backend requests through return(abandon), return(fail) or return(error) is no longer accounted as a fetch failure

Fixed a bug which could cause probes not to run

The if-range header is now handled, allowing clients to conditionally request a range based on a date or an ETag.

Introduced struct reqtop to hold information on the ESI top request and PRIV_TOP, fixed regression 3019

Allow numerical expressions in VCL to be negative / negated

Add vi-stype CTRL-f / CTRL-b for page down/up to interactive varnishstat

Fixed wrong handling of an out-of-workspae condition in the proxy vmod and in the workspace allocator, bug 3131

Raised the minimum for the vcl_cooldown parameter to 1s to fix bug 3135

Improved creation of additional threads when none are available

Fixed a race between director creation and the backend.list CLI command - see bug 3094

Added error handling to avoid panics for workspace overflows during session attribute allocation - bug 3145

Overloaded the += operator to also append to headers

Fixed set *.body commands.

Fixed status for truncated CLI responses, bug 3038

New or improved Coccinelle semantic patches that may be useful for VMOD or utilities authors.

Output VCC warnings also for VCLs loaded via the varnishd -f option, see bug 3160

Improved fetch error handling when stale objects are present in cache, see bug 3089

Added a Notice VSL tag (used for varnishlog logging)

Always refer to sub as subroutine in the documentation and error messages to avoid confusion with other terms.

New pid command in the Varnish CLI, to get the master and optionally cache process PIDs, for example from varnishadm.

Fixed a race that could result in a partial response being served in its entirety when it is also compressed with gzip.

Fixed session close reason reporting and accounting, added rx_close_idle counter for separate accounting when timeout_idle is reached. Also, send_timeout is no longer reported as "remote closed".

Fixed handling of request bodies for backend retries

Fix deadlocks when the maximum number of threads has been reached, in particular with http/2, see 2418

Add more vcl control over timeouts with sess.timeout_linger, sess.send_timeout and sess.idle_send_timeout

Fix panics due to missing EINVAL handling on MacOS, see 1853

Added VSLs() and VSLbs() functions for logging STRANDS to VSL

Fixed cases where a workspace overflow would not result in a VCL failure, see 3194

Added WS_VSB_new() / WS_VSB_finish() for VSBs on workspaces

Imported vmod_cookie from varnish_modules

The previously deprecated function cookie.filter_except() has been removed during import. It was replaced by cookie.keep()

body_status and req_body_status have been collapsed into one type. In particular, the REQ_BODY_* enums now have been replaced with BS_*.

Fixed an old regression of the Age: header for passes, see bug 3221

Added VRT_AllocStrandsWS() as a utility function to allocate STRANDS on a workspace.

Reduced compile time of vcl_init{} / vcl_fini{} with gcc, added v_dont_optimize attribute macro

Fixed a case where send_timeout would have no effect when streaming from a backend fetch, see bug 3189

NOTE Users upgrading varnish should re-check send_timeout with respect to long pass and streaming fetches and watch out for increased session close rates.

Added VSB_tofile() to libvarnishapi, see 3238
Comment 1 Mark Felder freebsd_committer freebsd_triage 2020-04-10 20:09:44 UTC
Committed, thanks!
Comment 2 commit-hook freebsd_committer freebsd_triage 2020-04-10 20:10:12 UTC
A commit references this bug:

Author: feld
Date: Fri Apr 10 20:09:32 UTC 2020
New revision: 531338
URL: https://svnweb.freebsd.org/changeset/ports/531338

Log:
  www/varnish6: Update to 6.4.0

  Changelog for 6.4.0:
  The MAIN.sess_drop counter is gone.

  New configure switch: --with-unwind. Alpine linux appears to offer a
  libexecinfo implementation that crashes when called by Varnish, this
  offers the alternative of using libunwind instead.

  backend none was added for "no backend".

  std.rollback(bereq) is now safe to use, fixed bug 3009

  Fixed varnishstat, varnishtop, varnishhist and varnishadm handling INT,
  TERM and HUP signals (bugs 3088 and 3229)

  The hash algorithm of the hash director was changed, so backend
  selection will change once only when upgrading. Users of the hash
  director are advised to consider using the shard director, which,
  amongst other advantages, offers more stable backend selection through
  consistent hashing.

  Log records can safely have empty fields or fields containing blanks if
  they are delimited by "double quotes". This was applied to SessError and
  Backend_health.

  It is now possible for VMOD authors to customize the connection pooling
  of a dynamic backend. A hash is now computed to determine uniqueness and
  a backend declaration can contribute arbitrary data to influence the
  pool.

  The option varnishtest -W is gone, the same can be achieved with
  varnishtest -p debug=+witness. A witness.sh script is available in the
  source tree to generate a graphviz dot file and detect potential lock
  cycles from the test logs.

  The Process timestamp for vcl_synth {} was wrongly issued before the VCL
  subroutine, now it gets emitted after VCL returns for consistency with
  vcl_deliver {}.

  Latencies for newly created worker threads to start work on congested
  systems have been improved.

  VRB_Iterate() signature has changed

  VRT_fail() now also works from director code

  Deliberately closing backend requests through return(abandon),
  return(fail) or return(error) is no longer accounted as a fetch failure

  Fixed a bug which could cause probes not to run

  The if-range header is now handled, allowing clients to conditionally
  request a range based on a date or an ETag.

  Introduced struct reqtop to hold information on the ESI top request and
  PRIV_TOP, fixed regression 3019

  Allow numerical expressions in VCL to be negative / negated

  Add vi-stype CTRL-f / CTRL-b for page down/up to interactive varnishstat

  Fixed wrong handling of an out-of-workspae condition in the proxy vmod
  and in the workspace allocator, bug 3131

  Raised the minimum for the vcl_cooldown parameter to 1s to fix bug 3135

  Improved creation of additional threads when none are available

  Fixed a race between director creation and the backend.list CLI command
  - see bug 3094

  Added error handling to avoid panics for workspace overflows during
  session attribute allocation - bug 3145

  Overloaded the += operator to also append to headers

  Fixed set *.body commands.

  Fixed status for truncated CLI responses, bug 3038

  New or improved Coccinelle semantic patches that may be useful for VMOD
  or utilities authors.

  Output VCC warnings also for VCLs loaded via the varnishd -f option, see
  bug 3160

  Improved fetch error handling when stale objects are present in cache,
  see bug 3089

  Added a Notice VSL tag (used for varnishlog logging)

  Always refer to sub as subroutine in the documentation and error
  messages to avoid confusion with other terms.

  New pid command in the Varnish CLI, to get the master and optionally
  cache process PIDs, for example from varnishadm.

  Fixed a race that could result in a partial response being served in its
  entirety when it is also compressed with gzip.

  Fixed session close reason reporting and accounting, added rx_close_idle
  counter for separate accounting when timeout_idle is reached. Also,
  send_timeout is no longer reported as "remote closed".

  Fixed handling of request bodies for backend retries

  Fix deadlocks when the maximum number of threads has been reached, in
  particular with http/2, see 2418

  Add more vcl control over timeouts with sess.timeout_linger,
  sess.send_timeout and sess.idle_send_timeout

  Fix panics due to missing EINVAL handling on MacOS, see 1853

  Added VSLs() and VSLbs() functions for logging STRANDS to VSL

  Fixed cases where a workspace overflow would not result in a VCL
  failure, see 3194

  Added WS_VSB_new() / WS_VSB_finish() for VSBs on workspaces

  Imported vmod_cookie from varnish_modules

  The previously deprecated function cookie.filter_except() has been
  removed during import. It was replaced by cookie.keep()

  body_status and req_body_status have been collapsed into one type. In
  particular, the REQ_BODY_* enums now have been replaced with BS_*.

  Fixed an old regression of the Age: header for passes, see bug 3221

  Added VRT_AllocStrandsWS() as a utility function to allocate STRANDS on
  a workspace.

  Reduced compile time of vcl_init{} / vcl_fini{} with gcc, added
  v_dont_optimize attribute macro

  Fixed a case where send_timeout would have no effect when streaming from
  a backend fetch, see bug 3189

  NOTE Users upgrading varnish should re-check send_timeout with respect
  to long pass and streaming fetches and watch out for increased session
  close rates.

  Added VSB_tofile() to libvarnishapi, see 3238

  PR:		245104

Changes:
  head/www/varnish6/Makefile
  head/www/varnish6/distinfo
  head/www/varnish6/pkg-plist