Mailing List Archive

#1773: Incomplete code in VDP_ESI()
#1773: Incomplete code in VDP_ESI()
-----------------------------+----------------------
Reporter: llavaud | Type: defect
Status: new | Priority: normal
Milestone: | Component: varnishd
Version: 4.1.0-TP1 | Severity: major
Keywords: Incomplete code |
-----------------------------+----------------------
{{{
Panic message:
Incomplete code in VDP_ESI(), cache/cache_esi_deliver.c line 332:
thread = (cache-worker)
version = varnish-4.1.0-tp1 revision 0e4e1bc
ident = Linux,3.2.0-4-amd64,x86_64,-junix,-sfile,-smalloc,-hcritbit,epoll
Backtrace:
0x4342f4: pan_ic+0x134
0x41da74: VDP_ESI+0x354
0x41b8c4: VDP_bytes+0x74
0x41bd72: VDP_DeliverObj+0x82
0x44df65: V1D_Deliver+0x245
0x436cf9: cnt_vdp+0x79
0x4372a4: CNT_Request+0x394
0x44eb03: HTTP1_Session+0x133
0x43a7a1: SES_Proto_Req+0x61
0x4493da: WRK_Thread+0x48a
req = 0x7f8dafb1c020 {
sp = 0x7f8dbeab0920, vxid = 68979429, step = R_STP_DELIVER,
req_body = R_BODY_NONE,
restarts = 0, esi_level = 0,
sp = 0x7f8dbeab0920 {
fd = 561, vxid = 47083597,
client = 66.249.75.70 51200,
step = S_STP_H1PROC,
},
worker = 0x7f8dfe042c30 {
stack = {0x7f8dfe043000 -> 0x7f8dfe037000}
ws = 0x7f8dfe042e30 {
id = "wrk",
{s,f,r,e} = {0x7f8dfe0423d0,0x7f8dfe0423d0,(nil),+2040},
},
VCL::method = DELIVER,
VCL::return = deliver,
VCL::methods = {RECV, HASH, HIT, DELIVER},
},
ws = 0x7f8dafb1c220 {
id = "req",
{s,f,r,e} = {0x7f8dafb1e028,+1312,+253904,+253904},
},
http[req] = {
ws = 0x7f8dafb1c220[req]
"GET",
"/my_uri",
"HTTP/1.1",
"Connection: Keep-alive",
"Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"From: googlebot(at)googlebot.com",
"User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)",
"X-Forwarded-For: 66.249.75.70",
"Host: my_host",
"Surrogate-Capability: abc=ESI/1.0",
"Accept-Encoding: gzip",
},
http[resp] = {
ws = 0x7f8dafb1c220[req]
"HTTP/1.1",
"200",
"OK",
"

--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1773>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator

_______________________________________________
varnish-bugs mailing list
varnish-bugs@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-bugs
Re: #1773: Incomplete code in VDP_ESI() [ In reply to ]
#1773: Incomplete code in VDP_ESI()
-----------------------------+-------------------------
Reporter: llavaud | Owner:
Type: defect | Status: closed
Priority: normal | Milestone:
Component: varnishd | Version: 4.1.0-TP1
Severity: major | Resolution: worksforme
Keywords: Incomplete code |
-----------------------------+-------------------------
Changes (by phk):

* status: new => closed
* resolution: => worksforme


Comment:

I have no idea what is going on here, and there is not enough details to
find out.

Basically what happened was that the ESI-cmd-string was illegal ...
somehow.

Obviously the most likely cause is some obscure programming error in
Varnish.

I don't think it is the code actually creating/parsing the ESI-cmd-string,
but writing through an invalid pointer might do it.

I have improved the error-reporting a little bit, so that varnishlog
contains clues if this happens again, but I am closing this ticket now
(sorry about the "worksforme" it is the least bogus reason I have to
choose from), because there is nothing more I can do.

If this happens again, please reopen this ticket, and try to include any
"Error" records in varnishlog output.

Considering how many bytes Varnish' ESI code pushes every second all over
the world, and that this is the first such bug-report for the code, the
probability of this being a random non-ECC-detected RAM error on your
machine isn't entirely unreasonable, and the ESI code is one of the few
places where such an error has a high likelyhood of being being detected,
so keep an eye out for that machine in general.

--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1773#comment:1>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator

_______________________________________________
varnish-bugs mailing list
varnish-bugs@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-bugs