V4.1 HTTP/1.0 responses without Content-Length header results in empty response
Tom Anheyer
Tom.Anheyer at Berlinonline.de
Wed Dec 9 13:39:12 CET 2015
Hello,
the request to the backend using netcat:
GET /tolle/api/url HTTP/1.0
User-Agent: location=XXX
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
X-Remote-IP: 212.45.105.231
X-SSL: no
X-Forwarded-For: 212.45.105.236
Host: service.berlin.de
X-Portal: service.berlin.de
X-Url: /tolle/api/url
X-Varnish: 14205995"
HTTP/1.1 200 OK
Date: Wed, 09 Dec 2015 12:10:07 GMT
Server: Apache/2.4.10 (Linux/SUSE)
X-Powered-By: PHP/5.4.20
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Strict-Transport-Security: max-age=3600;
Set-Cookie:
PHPSESSID=fjbpu6qtnhm0l6ev6hv9ievdeptgnvk0ejqeioaito6oeghqdhh1; path=/
X-Frame-Options: SAMEORIGIN
Cache-Control: proxy-revalidate
Connection: close
Content-Type: text/html; charset=utf-8
<?xml version="1.0"?><!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
…
the varnishlog:
- Begin bereq 14205994 pass
- Timestamp Start: 1449662361.587086 0.000000 0.000000
- BereqMethod POST
- BereqURL /tolle/api/url/
- BereqProtocol HTTP/1.0
- BereqHeader User-Agent: location=XXX
- BereqHeader Content-Length: 0
- BereqHeader Content-Type: application/x-www-form-urlencoded
- BereqHeader X-Remote-IP: XXX.XXX.XXX.231
- BereqHeader X-SSL: no
- BereqHeader X-Forwarded-For: XXX.XXX.XXX.236
- BereqHeader Host: service.berlin.de
- BereqHeader X-Portal: service.berlin.de
- BereqHeader X-Url: /tolle/api/url/
- BereqHeader X-Varnish: 14205995
- VCL_call BACKEND_FETCH
- VCL_return fetch
- BackendOpen 52 git-XXXX.backend_cobe 127.0.0.2 80 127.0.0.1 47835
- Timestamp Bereq: 1449662361.587196 0.000111 0.000111
- Timestamp Beresp: 1449662364.248866 2.661780 2.661670
- BerespProtocol HTTP/1.1
- BerespStatus 200
- BerespReason OK
- BerespHeader Date: Wed, 09 Dec 2015 11:59:21 GMT
- BerespHeader Server: Apache/2.4.10 (Linux/SUSE)
- BerespHeader X-Powered-By: PHP/5.4.20
- BerespHeader Expires: Thu, 19 Nov 1981 08:52:00 GMT
- BerespHeader Cache-Control: no-store, no-cache, must-revalidate,
post-check=0, pre-check=0
- BerespHeader Pragma: no-cache
- BerespHeader Strict-Transport-Security: max-age=3600;
- BerespHeader Set-Cookie:
PHPSESSID=cvqmotgiq1m3ovcmm51m0gska0r19rb05029aio3nkf5t237h7v0; path=/
- BerespHeader X-Frame-Options: SAMEORIGIN
- BerespHeader Cache-Control: proxy-revalidate
- BerespHeader Connection: close
- BerespHeader Content-Type: text/html; charset=utf-8
- TTL RFC 0 10 -1 1449662364 1449662364 1449662361 375007920 0
- VCL_call BACKEND_RESPONSE
- TTL VCL -1 3600 0 1449662364
- BerespUnset Server: Apache/2.4.10 (Linux/SUSE)
- BerespUnset X-Powered-By: PHP/5.4.20
- TTL VCL 120 3600 0 1449662364
- VCL_return deliver
- Storage malloc Transient
- ObjProtocol HTTP/1.1
- ObjStatus 200
- ObjReason OK
- ObjHeader Date: Wed, 09 Dec 2015 11:59:21 GMT
- ObjHeader Expires: Thu, 19 Nov 1981 08:52:00 GMT
- ObjHeader Cache-Control: no-store, no-cache, must-revalidate,
post-check=0, pre-check=0, proxy-revalidate
- ObjHeader Pragma: no-cache
- ObjHeader Strict-Transport-Security: max-age=3600;
- ObjHeader Set-Cookie:
PHPSESSID=cvqmotgiq1m3ovcmm51m0gska0r19rb05029aio3nkf5t237h7v0; path=/
- ObjHeader X-Frame-Options: SAMEORIGIN
- ObjHeader Content-Type: text/html; charset=utf-8
- Fetch_Body 0 none -
- BackendClose 52
git-f6195a0-Tom-Anheyer-2015-12-09-095945-0100.backend_cobe
- Timestamp BerespBody: 1449662364.249002 2.661916 0.000136
- Length 0
- BereqAcct 400 0 400 502 0 502
- End
The varnishlog differs from what I see yesterday. But the result is the
same (body stripped from response). There were lines with:
* req.body read error
* Resource temporarily unavailable
* REQ_BODY_FAIL
tom
Am 09.12.2015 um 12:12 schrieb Poul-Henning Kamp:
> --------
> In message <56680894.80904 at Berlinonline.de>, Tom Anheyer writes:
>
>> An old perl LWP script uses HTTP/1.0 posts to an apache backend. The
>> generated backend response has no Content-Length header. Varnish 4.1.0
>> doesn't read the body (got a read error) and delivers a "Content-Length: 0"
>> response back to the script. I know - http/1.0 its old and
>> should/must be avoided and the problems are gone after updating the
>> script to use http/1.1.
> Please capture the varnishlog output so we can see exactly what
> happens.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4266 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20151209/ba68b7eb/attachment.bin>
More information about the varnish-misc
mailing list