Hi, I've upgraded to Varnish 4.1.0 today on a system where there is Ceph's RADOS Gateway [0] running with the embedded Civetweb [1] webserver.
When a client sends a DELETE command the backend responds with a HTTP 204 without a body, but this causes Varnish to throw a 503 backend error. -6- BerespProtocol HTTP/1.1 -6- BerespStatus 204 -6- BerespReason No Content -6- BerespHeader Bucket: "widodh" -6- BerespHeader Content-type: application/xml -6- BerespHeader Content-Length: 0 -6- BerespHeader Date: Tue, 06 Oct 2015 18:23:07 GMT And Varnish then says: -6- Error Body cannot be fetched -6- Timestamp Error: 1444155787.622126 0.175832 0.000177 -6- BerespProtocol HTTP/1.1 -6- BerespStatus 503 -6- BerespReason Service Unavailable -6- BerespReason Backend fetch failed -6- BerespHeader Date: Tue, 06 Oct 2015 18:23:07 GMT -6- BerespHeader Server: Varnish -6- VCL_call BACKEND_ERROR Reading the HTTP specification [2] I found this: "The 204 response MUST NOT include a message-body, and thus is always terminated by the first empty line after the header fields." I can probably catch this in vcl_backend_response, pass to vcl_synth and come up with a proper response to the client, but is that the way to go? Is this a bug in Varnish or is it keeping to the RFCs? Thanks, Wido [0]: http://docs.ceph.com/docs/master/radosgw/ [1]: https://github.com/civetweb/civetweb [2]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html _______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
