'/_restart' closes request socket before sending a response
-----------------------------------------------------------
Key: COUCHDB-1310
URL: https://issues.apache.org/jira/browse/COUCHDB-1310
Project: CouchDB
Issue Type: Bug
Components: HTTP Interface
Affects Versions: 1.1
Environment: All platforms. Tested on Ubuntu 10.10.
Reporter: J. Lee Coltrane
Priority: Minor
Fix For: 1.1
In 'couchdb_misc_handlers.erl', `handle_restart_req(...)` calls
`couch_server_sup:restart_core_server()` before sending the HTTP response.
This causes the current request's socket to be closed without sending any
response back to the client. From the perspective of the HTTP client, the
connection is simply dropped - no response is ever received.
In addition to the obvious aesthetic problems here, the HTTP1.1 spec suggests a
specific (and non-desirable) client-side behavior for connections that drop
like this. From RFC-2616 Section-8.2.4: "...if the client sees the connection
close before receiving any status from the server, the client SHOULD retry the
request..." (http://tools.ietf.org/html/rfc2616#section-8.2.4). Any HTTP
client that actually obeys this direction, would end up restarting the server
multiple times.
I have a patch that fixes this issue. I will attach it to this report.
This issue may be related to COUCHDB-946
(https://issues.apache.org/jira/browse/COUCHDB-946).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira