connection closed before XML bulk delete data can be transmitted
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
It appears that since the following code change:
https:/
a bulk delete that wants XML output emitted will fail when used with HTTP "Expect: 100-continue". The XML header is emitted and then the HTTP connection is closed by Swift before any body data can be sent.
The application in question is based on libcurl, which is making use of the "Expect: 100-continue" header based on it's own hueristics.
Example of this occurring against a Swift 2.17 production proxy server:
[dcc@mbp ~]$ curl -X DELETE https:/
<?xml version="1.0" encoding="UTF-8"?>
curl: (18) transfer closed with outstanding read data remaining
Without the Expect header:
[dcc@mbp ~]$ curl -X DELETE https:/
<?xml version="1.0" encoding="UTF-8"?>
<delete>
<number_
<number_
<response_
<response_
<errors>
</errors>
</delete>
Checking the code change @ https:/
[dcc@mbp ~]$ curl -X DELETE https:/
<?xml version="1.0" encoding="UTF-8"?>
<delete>
<number_
<number_
<response_
<response_
<errors>
</errors>
</delete>
Swift 2.17
haproxy 1.6 ( I have bypassed the proxy and confirm the issue still occcurs)
I have duplicated this in my saio