<div>I am getting an Assert error which I think is related to a synthetic {...} call I make in the vcl on PURGE commands from the back-end. Is this is a known issue? Should I be doing something differently?</div>
<div><br></div><div>Here's an abbreviated version of the vcl:</div><div><br></div><div><div>acl purge {</div><div> "127.0.0.1";</div><div> "192.168.[...]"/[...];</div><div>
}</div></div><div><br></div><div><div>sub vcl_recv {</div><div> set req.backend = dir;</div><div><br></div><div> if (req.request == "PURGE") {</div>
<div> # if IP is not in "purge" acl, don't allow</div><div> if (!client.ip ~ purge) {</div><div> error 405 "Not allowed";</div><div> } else {</div><div> purge("req.url ~ " req.url);</div>
<div> synthetic {"Purged"};</div><div> return (lookup);</div><div> }</div><div> }</div></div><div>}</div><div><br></div><div>I'm running Varnish 2.1.4, which I compiled myself. This happened with varnish 2.1.3 too. I'm running Red Hat Enterprise Linux Server release 5.5 with 64-bit cpus.</div>
<div><br></div><div>Here's the error from the syslog:</div><div><br></div><div>Nov 12 22:49:15 squid1 varnishd[2433]: Child (13846) Panic message: Assert error in VRT_synth_page(), cache_vrt.c line 989: Condition((sp->obj) != NULL) not true. thread = (cache-worker) ident = Linux,2.6.18-194.17.4.el5,x86_64,-smalloc,-sfile,-hcritbit,epoll Backtrace: 0x423996: pan_ic+b6 0x42b153: VRT_synth_page+1e3 0x2ac3b2c1e31a: _end+2ac3b25aad52 0x4289a3: VCL_recv_method+43 0x4143fa: CNT_Session+5ca 0x425d58: wrk_do_cnt_sess+b8 0x42505e: wrk_thread_real+32e 0x32fa00673d: _end+32f9993175 0x32f90d3f6d: _end+32f8a609a5 sp = 0x2ac47b38e008 { fd = 64, id = 64, xid = 1187807240, client = 192.168.[...] 53762, step = STP_RECV, handling = deliver, restarts = 0, esis = 0 ws = 0x2ac47b38e080 { id = "sess", {s,f,r,e} = {0x2ac47b38ecd8,+184,(nil),+65536}, }, http[req] = { ws = 0x2ac47b38e080[sess] "PURGE", "<a href="http://www.wikihow.com/Document-Employee-Performance" target="_blank">http://www.wikihow.com/Document-Employee-Performance</a>", "HTTP/1.0", "Connection: Keep-Alive", }, worker = 0x2ac6fe7bbe60 { ws = 0x2</div>
<div><br></div><div>Thanks,</div><div><br></div><div>Reuben</div>