X-Loop: help-debbugs@HIDDEN Subject: bug#21093: Web server: response bodies systematically loaded in memory Resent-From: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Sun, 19 Jul 2015 22:11:01 +0000 Resent-Message-ID: <handler.21093.B.14373438474973 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 21093 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 21093 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-guile@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.14373438474973 (code B ref -1); Sun, 19 Jul 2015 22:11:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Jul 2015 22:10:47 +0000 Received: from localhost ([127.0.0.1]:54090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ZGwnH-0001I9-HQ for submit <at> debbugs.gnu.org; Sun, 19 Jul 2015 18:10:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:50000) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <ludo@HIDDEN>) id 1ZGwnF-0001Hw-B0 for submit <at> debbugs.gnu.org; Sun, 19 Jul 2015 18:10:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1ZGwn9-00052I-8t for submit <at> debbugs.gnu.org; Sun, 19 Jul 2015 18:10:39 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:39385) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1ZGwn9-00052E-6f for submit <at> debbugs.gnu.org; Sun, 19 Jul 2015 18:10:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35268) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1ZGwn8-0003yi-11 for bug-guile@HIDDEN; Sun, 19 Jul 2015 18:10:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1ZGwn0-0004xo-VJ for bug-guile@HIDDEN; Sun, 19 Jul 2015 18:10:37 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55996) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1ZGwn0-0004xk-QD for bug-guile@HIDDEN; Sun, 19 Jul 2015 18:10:30 -0400 Received: from reverse-83.fdn.fr ([80.67.176.83]:44423 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <ludo@HIDDEN>) id 1ZGwn0-0006kj-4r for bug-guile@HIDDEN; Sun, 19 Jul 2015 18:10:30 -0400 From: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 Thermidor an 223 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x3D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Mon, 20 Jul 2015 00:10:28 +0200 Message-ID: <87a8uriysr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -6.2 (------) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.2 (------) The =E2=80=98sanitize-response=E2=80=99 procedure systematically loads the = whole response body in memory, which causes obvious scalability issues (this is in 2.0.11.) In particular, when a request handler returns a port-taking procedure as its second return value, =E2=80=98sanitize-request=E2=80=99 will just call = that procedure passing it a string output port. This procedure should instead be called from the server implementation=E2= =80=99s =E2=80=98write=E2=80=99 hook, but that would necessitate an API change. Thoughts? Ludo=E2=80=99.
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#21093: Acknowledgement (Web server: response bodies systematically loaded in memory) Message-ID: <handler.21093.B.14373438474973.ack <at> debbugs.gnu.org> References: <87a8uriysr.fsf@HIDDEN> X-Gnu-PR-Message: ack 21093 X-Gnu-PR-Package: guile Reply-To: 21093 <at> debbugs.gnu.org Date: Sun, 19 Jul 2015 22:11:03 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-guile@HIDDEN If you wish to submit further information on this problem, please send it to 21093 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 21093: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D21093 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#21093: Web server: response bodies systematically loaded in memory Resent-From: Andy Wingo <wingo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Fri, 24 Jun 2016 08:16:02 +0000 Resent-Message-ID: <handler.21093.B21093.14667561515915 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21093 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Cc: guile-devel@HIDDEN, 21093 <at> debbugs.gnu.org Received: via spool by 21093-submit <at> debbugs.gnu.org id=B21093.14667561515915 (code B ref 21093); Fri, 24 Jun 2016 08:16:02 +0000 Received: (at 21093) by debbugs.gnu.org; 24 Jun 2016 08:15:51 +0000 Received: from localhost ([127.0.0.1]:53328 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1bGMHH-0001XL-DF for submit <at> debbugs.gnu.org; Fri, 24 Jun 2016 04:15:51 -0400 Received: from pb-sasl1.pobox.com ([64.147.108.66]:59059 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <wingo@HIDDEN>) id 1bGMHG-0001XE-3c for 21093 <at> debbugs.gnu.org; Fri, 24 Jun 2016 04:15:50 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id ED05C18DBB; Fri, 24 Jun 2016 04:15:47 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=OhRI0wjEP7Uh fqQcVkPNJz/9Ymw=; b=sXVnMQUeSSMyuG5Hrd35RsYppxe2IXBFFlyVBmMALi/3 2a9zIluPm4o8mwKKkGiX25WiXEQDjtZ0RFMwUQfIXeYXNlCNY+2pM914vygmBPU4 ZbjxlElVggEQA5YewGp7ewnNA4TsLfrA0iRrC0bwP2U+Ngb97FOx1fCL1L08J4o= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=uKIVGt Dq0mwrsw1k+AlGBjL/m195lQQl53DwKybyQsWUKYy1O27l3w4cJPQFONA6WIZiZa AvySmFNlchQsk1XsDjQ/Y6ocwolfa0oi0gPpUWcAuz6Ua3CwJXFRdTFXRhZp6OJx jQgfzDSDPRyUmbJc2zXtF9OMNRlmgKQS3gwQE= Received: from pb-sasl1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id D6C8618DB8; Fri, 24 Jun 2016 04:15:47 -0400 (EDT) Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id 22F5A18DB7; Fri, 24 Jun 2016 04:15:47 -0400 (EDT) From: Andy Wingo <wingo@HIDDEN> References: <87a8uriysr.fsf@HIDDEN> Date: Fri, 24 Jun 2016 10:15:40 +0200 In-Reply-To: <87a8uriysr.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Mon, 20 Jul 2015 00:10:28 +0200") Message-ID: <874m8jhuj7.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Pobox-Relay-ID: DACDDC84-39E3-11E6-A882-C1836462E9F6-02397024!pb-sasl1.pobox.com X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.4 (-) On Mon 20 Jul 2015 00:10, ludo@HIDDEN (Ludovic Court=C3=A8s) writes: > The =E2=80=98sanitize-response=E2=80=99 procedure systematically loads th= e whole > response body in memory, which causes obvious scalability issues (this > is in 2.0.11.) > > In particular, when a request handler returns a port-taking procedure as > its second return value, =E2=80=98sanitize-request=E2=80=99 will just cal= l that > procedure passing it a string output port. > > This procedure should instead be called from the server implementation=E2= =80=99s > =E2=80=98write=E2=80=99 hook, but that would necessitate an API change. > > Thoughts? How would you set the Content-Length? Just leave it off and set Connection: close ? Set it in the headers perhaps? Then you have to verify later, which I dunno how nice that is. Maybe it is OK. I would be happy to review patches :) Cc guile-devel. Andy
X-Loop: help-debbugs@HIDDEN Subject: bug#21093: Web server: response bodies systematically loaded in memory Resent-From: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Fri, 24 Jun 2016 08:59:02 +0000 Resent-Message-ID: <handler.21093.B21093.146675872110436 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 21093 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Andy Wingo <wingo@HIDDEN> Cc: guile-devel@HIDDEN, 21093 <at> debbugs.gnu.org Received: via spool by 21093-submit <at> debbugs.gnu.org id=B21093.146675872110436 (code B ref 21093); Fri, 24 Jun 2016 08:59:02 +0000 Received: (at 21093) by debbugs.gnu.org; 24 Jun 2016 08:58:41 +0000 Received: from localhost ([127.0.0.1]:53404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1bGMwj-0002iG-2G for submit <at> debbugs.gnu.org; Fri, 24 Jun 2016 04:58:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1bGMwh-0002i2-PO for 21093 <at> debbugs.gnu.org; Fri, 24 Jun 2016 04:58:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1bGMwb-0005M2-PL for 21093 <at> debbugs.gnu.org; Fri, 24 Jun 2016 04:58:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55297) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1bGMwS-0005I5-Sa; Fri, 24 Jun 2016 04:58:24 -0400 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:47830 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from <ludo@HIDDEN>) id 1bGMwS-0005Mq-30; Fri, 24 Jun 2016 04:58:24 -0400 From: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87a8uriysr.fsf@HIDDEN> <874m8jhuj7.fsf@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 7 Messidor an 224 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Fri, 24 Jun 2016 10:58:21 +0200 In-Reply-To: <874m8jhuj7.fsf@HIDDEN> (Andy Wingo's message of "Fri, 24 Jun 2016 10:15:40 +0200") Message-ID: <87r3bn7yky.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.4 (------) Andy Wingo <wingo@HIDDEN> skribis: > On Mon 20 Jul 2015 00:10, ludo@HIDDEN (Ludovic Court=C3=A8s) writes: > >> The =E2=80=98sanitize-response=E2=80=99 procedure systematically loads t= he whole >> response body in memory, which causes obvious scalability issues (this >> is in 2.0.11.) >> >> In particular, when a request handler returns a port-taking procedure as >> its second return value, =E2=80=98sanitize-request=E2=80=99 will just ca= ll that >> procedure passing it a string output port. >> >> This procedure should instead be called from the server implementation= =E2=80=99s >> =E2=80=98write=E2=80=99 hook, but that would necessitate an API change. >> >> Thoughts? > > How would you set the Content-Length? Just leave it off and set > Connection: close ? Set it in the headers perhaps? Then you have to > verify later, which I dunno how nice that is. Maybe it is OK. I think it could work this way: 1. By default, provide no =E2=80=98Content-Length=E2=80=99 and force chun= ked encoding (so that the recipient can make sure it received everything.) This is useful for data generated on the fly. 2. Provide an optional mechanism allowing the user to specify the content length upfront. Useful for statically-generated data that cannot fit in memory. I haven=E2=80=99t thought yet about the actual API (I=E2=80=99ll be happy t= o do so as time permits; to be clear, I don=E2=80=99t consider it a 2.0.12 blocker.) Ludo=E2=80=99.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.