Both MochiWeb and http://www.io.com/~maus/HttpKeepAlive.html think there is Keep-Alive in HTTP/1.0. And I'm guessing a great many clients do as well. Granted its by convention and not part of the spec, do we kill the possibility or adhere to convention.
Seeing as Mochiweb already tries I would say we should patch Mochiweb to support it. Sent to your iPhone On Tue, Sep 15, 2009 at 6:22 PM, Adam Kocoloski <[email protected]> wrote: > There's no keep-alive in HTTP/1.0 ... > > Sent from my iPhone > > On Sep 15, 2009, at 6:11 PM, "Paul Joseph Davis (JIRA)" <[email protected]> > wrote: > >> >> [ >> https://issues.apache.org/jira/browse/COUCHDB-504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755734#action_12755734 ] >> >> Paul Joseph Davis commented on COUCHDB-504: >> ------------------------------------------- >> >> http://code.google.com/p/couchdb-python/issues/detail?id=85 >> >> Looks like this could be related. >> >>> HTTP/1.1 keep alive fails with AB >>> --------------------------------- >>> >>> Key: COUCHDB-504 >>> URL: https://issues.apache.org/jira/browse/COUCHDB-504 >>> Project: CouchDB >>> Issue Type: Bug >>> Components: HTTP Interface >>> Affects Versions: 0.10 >>> Environment: Trunk >>> Reporter: Paul Joseph Davis >>> Assignee: Paul Joseph Davis >>> Priority: Blocker >>> >>> Reported on dev@ >>> On Tue, Sep 15, 2009 at 3:33 PM, thomas hallaran <[email protected]> >>> wrote: >>>> >>>> Hi all, >>>> We are using couchdb in production and have come across what appears to >>>> be a >>>> bug in the HTTP implementation. Apparently http keep alive requests are >>>> not >>>> correctly supported by couchdb. >>>> >>>> This problem has been verified for both couchdb .10 a running on ubuntu >>>> with erlang 13.b1 and couchdb .91 running on osx. We have also >>>> reproduced >>>> it with multiple http clients, the apache hc java client, curl and ab. >>>> >>>> To Reproduce: ab -v 4 -k -n1 >>>> >>>> http://localhost:5984/{COUCHDB_GET_ENDPOINT}<http://localhost:5984/%7BCOUCHDB_GET_ENDPOINT%7D>times >>>> out. If you add more requests for ab to do (-n4 or something) you will >>>> see that rather than reusing the connection, each keepalive request >>>> times >>>> out and then the connection is reopened and the request made. >>> >>> And I've verified: >>> $ svn up >>> #snipped >>> Updated to revision 815457. >>> $ ./bootstrap && ./configure && make dev >>> #snipped >>> $ ./utils/run >>> Apache CouchDB 0.11.0a815457 (LogLevel=info) is starting. >>> Apache CouchDB has started. Time to relax. >>> # In second terminal >>> $ curl -X PUT http://127.0.0.1:5984/test_fu >>> {"ok":true} >>> $ curl -X PUT -d '{"stuff": "here"}' http://127.0.0.1:5984/test_fu/beer >>> {"ok":true,"id":"beer","rev":"1-9782357dd8b8d18d94843686e510ec92"} >>> $ ab -v 4 -k -n1 http://127.0.0.1:5984/test_fu/beer >>> This is ApacheBench, Version 2.3 <$Revision: 655654 $> >>> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ >>> Licensed to The Apache Software Foundation, http://www.apache.org/ >>> Benchmarking 127.0.0.1 (be patient)...INFO: POST header == >>> --- >>> GET /test_fu/beer HTTP/1.0 >>> Connection: Keep-Alive >>> Host: 127.0.0.1:5984 >>> User-Agent: ApacheBench/2.3 >>> Accept: */* >>> --- >>> LOG: header received: >>> HTTP/1.0 200 OK >>> Server: CouchDB/0.11.0a815457 (Erlang OTP/R13B) >>> Etag: "1-9782357dd8b8d18d94843686e510ec92" >>> Date: Tue, 15 Sep 2009 19:44:36 GMT >>> Content-Type: text/plain;charset=utf-8 >>> Content-Length: 74 >>> Cache-Control: must-revalidate >>> {"_id":"beer","_rev":"1-9782357dd8b8d18d94843686e510ec92","stuff":"here"} >>> LOG: Response code = 200 >>> apr_poll: The timeout specified has expired (70007) >> >> -- >> This message is automatically generated by JIRA. >> - >> You can reply to this email to add a comment to the issue online. >> >
