升级到Varnish 7.3

新的VSL格式

更改了Varnish日志的二进制格式,将VXID的空间从32位增加到64位。这不是旧版本的Varnish日志记录实用程序可以理解的更改,新实用程序也不能处理旧日志。

没有从旧格式到新格式的转换工具,因此只有在存储原始日志以供将来处理时,这才会成为问题。如果旧的二进制日志需要保持可用,唯一的解决方案是使用兼容的Varnish版本,在此版本发布时,6.0分支是唯一没有终止日期的分支。

对于开发人员和VMOD作者:C接口更改需要调整

VIA后端

的新后端参数 VRT_new_backend*() 函数是可选的,并且 NULL 可以传递以匹配之前的行为。

SuckAddress

以下函数返回或接受 const 从现在开始的指针:

  • VSA_Clone()

  • VSA_getsockname()

  • VSA_getpeername()

  • VSA_Malloc()

  • VSA_Build*()

  • VSS_ResolveOne()

  • VSS_ResolveFirst()

VSA_free() 已添加到由 VSA_Malloc() 或者是其中一个 VSA_Build*() 函数使用 NULL 第一个论点。

董事

董事通过以下途径取得并持有对其他董事的引用 VRT_Assign_Backend() (通常是有其他控制器作为后端的任何控制器)现在需要实施新的 .release 类型的回调 void vdi_release_f(VCL_BACKEND) 。此函数由调用 VRT_DelDirector() 。该实现预计会删除控制器持有的任何后端引用(同样使用 VRT_Assign_Backend() 使用 NULL 作为第二个论点)。

未能实现此回调可能会导致死锁,特别是在VCL丢弃期间。

eof