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=1.3 required=5.0 tests=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 A07AA1F442 for ; Thu, 15 Aug 2013 23:05:38 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id 310D42E202; Thu, 15 Aug 2013 23:05:39 +0000 (UTC) X-Original-To: mongrel-unicorn@rubyforge.org Delivered-To: mongrel-unicorn@rubyforge.org X-Greylist: delayed 1377 seconds by postgrey-1.31 at rubyforge; Thu, 15 Aug 2013 23:03:09 UTC Received: from mail-oa0-f41.google.com (mail-oa0-f41.google.com [209.85.219.41]) by rubyforge.org (Postfix) with ESMTP id C1C2D2E1FB for ; Thu, 15 Aug 2013 23:03:09 +0000 (UTC) Received: by mail-oa0-f41.google.com with SMTP id j6so1588501oag.28 for ; Thu, 15 Aug 2013 16:03:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=Et8HNUHJqRxL5ePlFeJiHHvi43rX/XmJ6erVIBhVGdw=; b=ih4tFPmWWUgXsyCub5A9HJv2gNyPyJ63hcCT1c4fd8Oq00SkB/fTyWd3QeJeunuzlB xO5bXW2AZ7/Hc24htAHV7MTaleKYQZUGIly7srgfa/lm5zjTclE4/bHMGuXxE0SDAdXJ n17rwDy1bvmGeNw1QGB034sOKQOv6SfiIv1IzqhenURzV+OhNtlO/iSdQt+dqfCif1te c7A36xkRYXwWqUmZl0ZpfxXmjw+B2/83p56RsYZT7Qb5zRvbGtLO0aArfsE6Kk5SkW6I AjsF/iMbS32kkstnI02kBWh+Ak35lOyfCPcZCIaVdEc7Ckxxb+Im2D9DLkTvZ4IQomnW 4yOw== X-Gm-Message-State: ALoCoQlvMhPo5LlQCFCTE7Pw8O9I60eGFij/53Vb5AZ8YvkM2DMHK8ON9ZK/E598J3WgUxVS46Oz X-Received: by 10.60.124.14 with SMTP id me14mr16152571oeb.4.1376605955167; Thu, 15 Aug 2013 15:32:35 -0700 (PDT) Received: from localhost.localdomain (c-69-250-204-166.hsd1.md.comcast.net. [69.250.204.166]) by mx.google.com with ESMTPSA id fk3sm1699632obb.2.2013.08.15.15.32.22 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 15 Aug 2013 15:32:33 -0700 (PDT) From: Tim Snowhite To: mongrel-unicorn@rubyforge.org Subject: [PATCH] http_response: reattempt writing body chunks to the socket under situations of high EINVAL/EAGAIN load. Date: Thu, 15 Aug 2013 18:32:16 -0400 Message-Id: <1376605936-1758-1-git-send-email-tsnowhite@taximagic.com> X-Mailer: git-send-email 1.8.1.5 MIME-Version: 1.0 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 V2UgcnVuIFVuaWNvcm4gd2l0aCBydWJ5IDEuOC43IG9uIEZyZWVCU0QgYW5kIGJlZ2FuIGV4cGVy aWVuY2luZyBtYW55IGVhcmx5IHRlcm1pbmF0aW9ucyBvZiB0aGUgYm9keSBzdHJlYW0gd2hlbiBh dHRlbXB0aW5nIHRvIHRyYW5zZmVyIGZpbGVzIG92ZXIgYSBjb3VwbGUgaHVuZHJlZCBLYi4gVGhl IGJvZHkgc3RyZWFtIHdvdWxkIHRlcm1pbmF0ZSB3aXRoIOKApmRhdGHigKZIVFRQIDEuMSA1MDAg SW50ZXJuYWwgU2VydmljZSBFcnJvciwgZHVlIHRvIHJhaXNpbmcgYW4gRXJybm86OkVJTlZBTCBh bmQgY2F0Y2hpbmcgdGhpcyBoYW5kbGVyOgoKICMgaWYgd2UgZ2V0IGFueSBlcnJvciwgdHJ5IHRv IHdyaXRlIHNvbWV0aGluZyBiYWNrIHRvIHRoZSBjbGllbnQKICMgYXNzdW1pbmcgd2UgaGF2ZW4n dCBjbG9zZWQgdGhlIHNvY2tldCwgYnV0IGRvbid0IGdldCBodW5nIHVwCiAjIGlmIHRoZSBzb2Nr ZXQgaXMgYWxyZWFkeSBjbG9zZWQgb3IgYnJva2VuLiAgV2UnbGwgYWx3YXlzIGVuc3VyZQogIyB0 aGUgc29ja2V0IGlzIGNsb3NlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24KIGRlZiBoYW5k bGVfZXJyb3IoY2xpZW50LCBlKQogICBjb2RlID0gY2FzZSBlCiAgIHdoZW4gRU9GRXJyb3IsRXJy bm86OkVDT05OUkVTRVQsRXJybm86OkVQSVBFLEVycm5vOjpFSU5WQUwsRXJybm86OkVCQURGLAog ICAgICAgIEVycm5vOjpFTk9UQ09OTgogICAgIDUwMAogICB3aGVuIFVuaWNvcm46OlJlcXVlc3RV UklUb29Mb25nRXJyb3IKICAgICA0MTQKICAgd2hlbiBVbmljb3JuOjpSZXF1ZXN0RW50aXR5VG9v TGFyZ2VFcnJvcgogICAgIDQxMwogICB3aGVuIFVuaWNvcm46Okh0dHBQYXJzZXJFcnJvciAjIHRy eSB0byB0ZWxsIHRoZSBjbGllbnQgdGhleSdyZSBiYWQKICAgICA0MDAKICAgZWxzZQogICAgIFVu aWNvcm4ubG9nX2Vycm9yKEBsb2dnZXIsICJhcHAgZXJyb3IiLCBlKQogICAgIDUwMAogICBlbmQK ICAgY2xpZW50LmtnaW9fdHJ5d3JpdGUoZXJyX3Jlc3BvbnNlKGNvZGUsIEByZXF1ZXN0LnJlc3Bv bnNlX3N0YXJ0X3NlbnQpKQogICBjbGllbnQuY2xvc2UKICAgcmVzY3VlCiBlbmQKCgogQnkgcmVh dHRlbXB0aW5nIHRoZSB3cml0ZSB0byB0aGUgc29ja2V0IG92ZXIgYW5kIG92ZXIgd2Ugd2VyZSBh YmxlIHRvIGdldCBwYXN0IHRoZSBlcnJvciBhbmQgc2VuZCB0aGUgYXBwcm9wcmlhdGUgZGF0YSBh bG9uZy4gKEl0IGRpZG4ndCB1c3VhbGx5IHRha2UgbW9yZSB0aGFuIDEwIHJldHJpZXMgcGVyIF9j b25uZWN0aW9uXywgSSBidW1wZWQgdGhlIG51bWJlciB1cCB0byA1MCB0cmllcyBwZXIgX3dyaXRl XyB0byBiZSBmYXIgYmV5b25kIGFueXRoaW5nIHdlJ2QgZXZlciBuZWVkLikKCkl0IGFwcGVhcnMg dGhhdCBLZ2lvIGlzIHVzZWQgdGhyb3VnaG91dCB1bmljb3JuIHRvIHNlcnZlIHRoaXMgZXhhY3Qg cHVycG9zZSwgYSBwb3NzaWJsZSBiZXR0ZXIgc29sdXRpb27CoG1pZ2h0IGJlIHRvIHVzZSBzb21l dGhpbmcgYWxvbmcgdGhlIGxpbmVzIG9mOgogIGJvZHkuZWFjaCB7fGNodW5rfAogICAgIDUwLnRp bWVzIHsKCSAgICAgZmFpbHVyZSA9IHNvY2tldC5rZ2lvX3RyeXdyaXRlKGNodW5rKQogICAgICAg ICBjYXNlIGZhaWx1cmUKCSAgICAgd2hlbiA6d2FpdF93cml0YWJsZSB0aGVuCiAgICAgICAgICAg bmV4dDsKICAgICAgICAgd2hlbiBTdHJpbmcgdGhlbgogICAgICAgICAgIGNodW5rID0gZmFpbHVy ZQogICAgICAgICAgIG5leHQ7CiAgICAgICAgIHdoZW4gbmlsIHRoZW4KICAgICAgICAgICBicmVh azsKICAgICAgICAgZW5kCiAgICAgfQogICAgIFVuaWNvcm4ubG9nX2Vycm9yKEBsb2dnZXIsICJy ZXNwb25zZSB3cml0ZSBlcnJvciIsIEV4Y2VwdGlvbi5uZXcobWF5YmUpKSBpZiBAbG9nZ2VyLnJl c3BvbmRfdG8/KDplcnJvcikKICB9CgoKU2FkbHkgSSB3YXMgbm90IGFibGUgdG8gY3JlYXRlIGFu IGV4YW1wbGUgc2NlbmFyaW8gdW5kZXIgd2hpY2ggdGhlIHNvY2tldC53cml0ZSB3b3VsZCB0aHJv dyBFcnJubzo6RUlOVkFMLiBBbnkgc3VnZ2VzdGlvbnMgd291bGQgYmUgd2VsY29tZSBmb3IgaG93 IHRvIGdlbmVyYXRlIHN1Y2ggYSBzY2VuYXJpby4KLS0tCiBsaWIvdW5pY29ybi9odHRwX3Jlc3Bv bnNlLnJiIHwgMTUgKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYi91bmljb3JuL2h0dHBfcmVzcG9u c2UucmIgYi9saWIvdW5pY29ybi9odHRwX3Jlc3BvbnNlLnJiCmluZGV4IDA4Mzk1MWMuLmVkYWNl ZWUgMTAwNjQ0Ci0tLSBhL2xpYi91bmljb3JuL2h0dHBfcmVzcG9uc2UucmIKKysrIGIvbGliL3Vu aWNvcm4vaHR0cF9yZXNwb25zZS5yYgpAQCAtNTcsNyArNTcsMjAgQEAgbW9kdWxlIFVuaWNvcm46 Okh0dHBSZXNwb25zZQogICAgICAgYm9keSA9IG5pbCAjIGVuc3VyZSB3ZSBkbyBub3QgY2xvc2Ug Ym9keQogICAgICAgaGlqYWNrLmNhbGwoc29ja2V0KQogICAgIGVsc2UKLSAgICAgIGJvZHkuZWFj aCB7IHxjaHVua3wgc29ja2V0LndyaXRlKGNodW5rKSB9CisgICAgICBib2R5LmVhY2ggeyB8Y2h1 bmt8IAorICAgICAgICB0cmllcyA9IDAKKyAgICAgICAgYmVnaW4KKyAgICAgICAgICBzb2NrZXQu d3JpdGUoY2h1bmspCisgICAgICAgIHJlc2N1ZSBFcnJubzo6RUlOVkFMID0+IGUKKyAgICAgICAg ICBAbG9nZ2VyLmVycm9yICJyZXNwb25zZSB3cml0ZSByZXRyeWFibGUgZXJyb3IgZWludmFsIGF0 dGVtcHQgI3t0cmllc306ICN7ZS5tZXNzYWdlfSAoI3tlLmNsYXNzfSkgI3tlLmJhY2t0cmFjZS5m aXJzdH0iIGlmIEBsb2dnZXIucmVzcG9uZF90bz8oOmVycm9yKQorICAgICAgICAgIHRyaWVzICs9 IDEKKyAgICAgICAgICByZXRyeSBpZiB0cmllcyA8IDUwCisgICAgICAgICAgcmFpc2UKKyAgICAg ICAgcmVzY3VlID0+IGUKKyAgICAgICAgICBVbmljb3JuLmxvZ19lcnJvcihAbG9nZ2VyLCAicmVz cG9uc2Ugd3JpdGUgZXJyb3IiLCBlKSBpZiBAbG9nZ2VyLnJlc3BvbmRfdG8/KDplcnJvcikKKyAg ICAgICAgICByYWlzZQorICAgICAgICBlbmQKKyAgICAgIH0KICAgICBlbmQKICAgZW5zdXJlCiAg ICAgYm9keS5yZXNwb25kX3RvPyg6Y2xvc2UpIGFuZCBib2R5LmNsb3NlCi0tIAoxLjguMS41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpVbmljb3JuIG1h aWxpbmcgbGlzdCAtIG1vbmdyZWwtdW5pY29ybkBydWJ5Zm9yZ2Uub3JnCmh0dHA6Ly9ydWJ5Zm9y Z2Uub3JnL21haWxtYW4vbGlzdGluZm8vbW9uZ3JlbC11bmljb3JuCkRvIG5vdCBxdW90ZSBzaWdu YXR1cmVzIChsaWtlIHRoaXMgb25lKSBvciB0b3AgcG9zdCB3aGVuIHJlcGx5aW5nCg==