7

Question about obj.ttl in Varnish 4.0

I have a small varnish problem and hope anyone can help me. I am using varnish 4.0 and I want to increase the obj.ttl based on the obj.hits

sub vcl_hit {
  if (obj.hits == 1000) {
    set obj.ttl = 7d;
  }
}

sub vcl_fetch {
  set beresp.ttl = 20m;
}

Unfortunately, I receive an error. Message from VCC-compiler:

 Variable 'obj.ttl' is read only.
 At: ('input' Line 46 Pos 21)
Brandon
  • 16,382
  • 12
  • 55
  • 88
user3589380
  • 91
  • 1
  • 2
  • 6

1 Answers1

8

In Varnish 4, the entire obj variable is read-only:

obj is now read-only

obj is now read-only. obj.hits, if enabled in VCL, now counts per objecthead, not per object. obj.last_use has been retired.

Use beresp.ttl instead (see the VCL reference). I suggest reading the entire Upgrading To Varnish 4 document.

Brandon
  • 16,382
  • 12
  • 55
  • 88