From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS33070 50.56.128.0/17 X-Spam-Status: No, score=0.5 required=5.0 tests=AWL,RDNS_NONE shortcircuit=no autolearn=no version=3.3.2 X-Original-To: archivist@yhbt.net Delivered-To: archivist@dcvr.yhbt.net Received: from rubyforge.org (unknown [50.56.192.79]) by dcvr.yhbt.net (Postfix) with ESMTP id C6D4C44C004 for ; Thu, 15 Aug 2013 23:53:31 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id E1D1D2E1FE; Thu, 15 Aug 2013 23:53:32 +0000 (UTC) X-Original-To: mongrel-unicorn@rubyforge.org Delivered-To: mongrel-unicorn@rubyforge.org Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by rubyforge.org (Postfix) with ESMTP id 46AAA2E1FD for ; Thu, 15 Aug 2013 23:46:35 +0000 (UTC) Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id F07D31F442; Thu, 15 Aug 2013 23:46:32 +0000 (UTC) Date: Thu, 15 Aug 2013 23:46:32 +0000 From: Eric Wong To: unicorn list Subject: Re: [PATCH] http_response: reattempt writing body chunks to the socket under situations of high EINVAL/EAGAIN load. Message-ID: <20130815234632.GA26997@dcvr.yhbt.net> References: <1376605936-1758-1-git-send-email-tsnowhite@taximagic.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1376605936-1758-1-git-send-email-tsnowhite@taximagic.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Tim Snowhite X-BeenThere: mongrel-unicorn@rubyforge.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: mongrel-unicorn-bounces@rubyforge.org Errors-To: mongrel-unicorn-bounces@rubyforge.org VGltIFNub3doaXRlIDx0c25vd2hpdGVAdGF4aW1hZ2ljLmNvbT4gd3JvdGU6Cj4gV2UgcnVuIFVu aWNvcm4gd2l0aCBydWJ5IDEuOC43IG9uIEZyZWVCU0QgYW5kIGJlZ2FuIGV4cGVyaWVuY2luZyBt YW55Cj4gZWFybHkgdGVybWluYXRpb25zIG9mIHRoZSBib2R5IHN0cmVhbSB3aGVuIGF0dGVtcHRp bmcgdG8gdHJhbnNmZXIKPiBmaWxlcyBvdmVyIGEgY291cGxlIGh1bmRyZWQgS2IuIFRoZSBib2R5 IHN0cmVhbSB3b3VsZCB0ZXJtaW5hdGUgd2l0aAo+IOKApmRhdGHigKZIVFRQIDEuMSA1MDAgSW50 ZXJuYWwgU2VydmljZSBFcnJvciwgZHVlIHRvIHJhaXNpbmcgYW4KPiBFcnJubzo6RUlOVkFMIGFu ZCBjYXRjaGluZyB0aGlzIGhhbmRsZXI6CgpIYXZpbmcgdG8gcmV0cnkgYSB3cml0ZSgpIChvciBh bnkgc3lzY2FsbCkgb24gRUlOVkFMIHNlZW1zIGNvbXBsZXRlbHkKd3JvbmcuLi4gIE1vcmUgYW5h bHlzaXMgYmVsb3cuCgo+ICAjIGlmIHdlIGdldCBhbnkgZXJyb3IsIHRyeSB0byB3cml0ZSBzb21l dGhpbmcgYmFjayB0byB0aGUgY2xpZW50Cj4gICMgYXNzdW1pbmcgd2UgaGF2ZW4ndCBjbG9zZWQg dGhlIHNvY2tldCwgYnV0IGRvbid0IGdldCBodW5nIHVwCj4gICMgaWYgdGhlIHNvY2tldCBpcyBh bHJlYWR5IGNsb3NlZCBvciBicm9rZW4uICBXZSdsbCBhbHdheXMgZW5zdXJlCj4gICMgdGhlIHNv Y2tldCBpcyBjbG9zZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uCj4gIGRlZiBoYW5kbGVf ZXJyb3IoY2xpZW50LCBlKQo+ICAgIGNvZGUgPSBjYXNlIGUKPiAgICB3aGVuIEVPRkVycm9yLEVy cm5vOjpFQ09OTlJFU0VULEVycm5vOjpFUElQRSxFcnJubzo6RUlOVkFMLEVycm5vOjpFQkFERiwK PiAgICAgICAgIEVycm5vOjpFTk9UQ09OTgoKV2UgaW5oZXJpdGVkIHRoZSBFSU5WQUwvRUJBREYg Y2FwdHVyZSBmcm9tIE1vbmdyZWwsIGJ1dCByZWFsbHkgd2UKc2hvdWxkbid0IGJlIHN3YWxsb3dp bmcgdGhhdCBlcnJvci9iYWNrdHJhY2UuICBQZXJoYXBzIHdlIHNob3VsZCBqdXN0CmxldCB0aG9z ZSBleGNlcHRpb25zIGZhbGwgdGhyb3VnaCB0byB0aGUgImFwcCBlcnJvciIgYmVsb3cKCj4gICAg ICA1MDAKPiAgICB3aGVuIFVuaWNvcm46OlJlcXVlc3RVUklUb29Mb25nRXJyb3IKPiAgICAgIDQx NAo+ICAgIHdoZW4gVW5pY29ybjo6UmVxdWVzdEVudGl0eVRvb0xhcmdlRXJyb3IKPiAgICAgIDQx Mwo+ICAgIHdoZW4gVW5pY29ybjo6SHR0cFBhcnNlckVycm9yICMgdHJ5IHRvIHRlbGwgdGhlIGNs aWVudCB0aGV5J3JlIGJhZAo+ICAgICAgNDAwCj4gICAgZWxzZQoKTGV0IEVJTlZBTC9FQkFERiBo aXQgaGVyZToKCj4gICAgICBVbmljb3JuLmxvZ19lcnJvcihAbG9nZ2VyLCAiYXBwIGVycm9yIiwg ZSkKPiAgICAgIDUwMAo+ICAgIGVuZAo+ICAgIGNsaWVudC5rZ2lvX3RyeXdyaXRlKGVycl9yZXNw b25zZShjb2RlLCBAcmVxdWVzdC5yZXNwb25zZV9zdGFydF9zZW50KSkKPiAgICBjbGllbnQuY2xv c2UKPiAgICByZXNjdWUKPiAgZW5kCj4gCgo+ICBCeSByZWF0dGVtcHRpbmcgdGhlIHdyaXRlIHRv IHRoZSBzb2NrZXQgb3ZlciBhbmQgb3ZlciB3ZSB3ZXJlIGFibGUgdG8KPiAgZ2V0IHBhc3QgdGhl IGVycm9yIGFuZCBzZW5kIHRoZSBhcHByb3ByaWF0ZSBkYXRhIGFsb25nLiAoSXQgZGlkbid0Cj4g IHVzdWFsbHkgdGFrZSBtb3JlIHRoYW4gMTAgcmV0cmllcyBwZXIgX2Nvbm5lY3Rpb25fLCBJIGJ1 bXBlZCB0aGUKPiAgbnVtYmVyIHVwIHRvIDUwIHRyaWVzIHBlciBfd3JpdGVfIHRvIGJlIGZhciBi ZXlvbmQgYW55dGhpbmcgd2UnZCBldmVyCj4gIG5lZWQuKQoKPiBJdCBhcHBlYXJzIHRoYXQgS2dp byBpcyB1c2VkIHRocm91Z2hvdXQgdW5pY29ybiB0byBzZXJ2ZSB0aGlzIGV4YWN0Cj4gcHVycG9z ZSwgYSBwb3NzaWJsZSBiZXR0ZXIgc29sdXRpb27CoG1pZ2h0IGJlIHRvIHVzZSBzb21ldGhpbmcg YWxvbmcKPiB0aGUgbGluZXMgb2Y6Cj4gCj4gICBib2R5LmVhY2gge3xjaHVua3wKPiAgICAgIDUw LnRpbWVzIHsKPiAJICAgICBmYWlsdXJlID0gc29ja2V0LmtnaW9fdHJ5d3JpdGUoY2h1bmspCj4g ICAgICAgICAgY2FzZSBmYWlsdXJlCj4gCSAgICAgd2hlbiA6d2FpdF93cml0YWJsZSB0aGVuCj4g ICAgICAgICAgICBuZXh0OwoKVGhhdCdzIGp1c3QgYnVzeSBsb29waW5nLCBhdCBsZWFzdCBjaGVj ayBmb3Igd3JpdGFiaWxpdHkgdmlhCmtnaW9fd2FpdF93cml0YWJsZSBvciBJTy5zZWxlY3QuICBC dXQgcmVhbGx5LCBhIG5vbi1ibG9ja2luZyBzb2NrZXQKd3JpdGUgZG9lc24ndCBtYWtlIHNlbnNl IGZvciB1bmljb3JuLgoKPiAgICAgICAgICB3aGVuIFN0cmluZyB0aGVuCj4gICAgICAgICAgICBj aHVuayA9IGZhaWx1cmUKPiAgICAgICAgICAgIG5leHQ7Cj4gICAgICAgICAgd2hlbiBuaWwgdGhl bgo+ICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgZW5kCj4gICAgICB9Cj4gICAgICBVbmlj b3JuLmxvZ19lcnJvcihAbG9nZ2VyLCAicmVzcG9uc2Ugd3JpdGUgZXJyb3IiLCBFeGNlcHRpb24u bmV3KG1heWJlKSkgaWYgQGxvZ2dlci5yZXNwb25kX3RvPyg6ZXJyb3IpCj4gICB9CgoKPiBTYWRs eSBJIHdhcyBub3QgYWJsZSB0byBjcmVhdGUgYW4gZXhhbXBsZSBzY2VuYXJpbyB1bmRlciB3aGlj aCB0aGUKPiBzb2NrZXQud3JpdGUgd291bGQgdGhyb3cgRXJybm86OkVJTlZBTC4gQW55IHN1Z2dl c3Rpb25zIHdvdWxkIGJlCj4gd2VsY29tZSBmb3IgaG93IHRvIGdlbmVyYXRlIHN1Y2ggYSBzY2Vu YXJpby4KCklzIHRoZXJlIGFueSBjaGFuY2Ugc3RyaW5naWZ5aW5nIHRoZSBjaHVuayBmcm9tIHlv dXIgUmFjayByZXNwb25zZQpib2R5IGNvdWxkIGJlIGNhdXNpbmcgRXJybm86OkVJTlZBTD8KCk90 aGVyd2lzZSwgdGhpcyBpcyBhIEZyZWVCU0QgYnVnIHdoaWNoIG5lZWRzIHRvIGJlIGZpeGVkLgoK SW4gdGhlIG1lYW4gdGltZSAoaWYgeW91IGNhbiBjb25maXJtIHRoZSBFSU5WQUwgaXMgcmVhbGx5 IGNvbWluZwpmcm9tIHRoZSBzb2NrZXQud3JpdGUgYW5kIG5vdCB0aGUgY2h1bmsgc3RyaW5naWZp Y2F0aW9uLApwZXJoYXBzIG1vZGlmeWluZyBLZ2lvOjpTb2NrZXQjd3JpdGUgaXMgbGVzcyBpbnRy dXNpdmU6CgojIHdvcmthcm91bmQgcG9zc2libHkgYnJva2VuIHdyaXRlKCkgb24gRnJlZUJTRApj bGFzcyBLZ2lvOjpTb2NrZXQKICBkZWYgd3JpdGUoY2h1bmspCiAgICB0cmllcyA9IDUwCiAgICBi ZWdpbgogICAgICBzdXBlcgogICAgcmVzY3VlIEVycm5vOjpFSU5WQUwKICAgICAgdHJpZXMgLT0g MQogICAgICByYWlzZSBpZiB0cmllcyA8IDAKICAgICAgcmV0cnkKICAgIHJlc2N1ZSA9PiBlCiAg ICAgICMgLi4uCiAgICBlbmQKICBlbmQKZW5kIGlmIFJVQllfUExBVEZPUk0gPX4gL2ZyZWVic2Qv Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClVuaWNvcm4g bWFpbGluZyBsaXN0IC0gbW9uZ3JlbC11bmljb3JuQHJ1Ynlmb3JnZS5vcmcKaHR0cDovL3J1Ynlm b3JnZS5vcmcvbWFpbG1hbi9saXN0aW5mby9tb25ncmVsLXVuaWNvcm4KRG8gbm90IHF1b3RlIHNp Z25hdHVyZXMgKGxpa2UgdGhpcyBvbmUpIG9yIHRvcCBwb3N0IHdoZW4gcmVwbHlpbmcK