lib/PublicInbox/Qspawn.pm | 4 ++++ script/public-inbox-httpd | 8 +------- diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index 5a300644fe3df0b3ad49d5d22b904eef77e89385..cb3dc516304d74e70467c8ba0aac43e8d0004c66 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -281,6 +281,10 @@ $r->[2] = PublicInbox::GetlineBody->new($rpipe, $end, $buf, $filter); $wcb->($r); } + + # Workaround a leak under Perl 5.16.3 when combined with + # Plack::Middleware::Deflater: + $wcb = undef; }; $limiter ||= $def_limiter ||= PublicInbox::Qspawn::Limiter->new(32); my $start_cb = sub { # may run later, much later... diff --git a/script/public-inbox-httpd b/script/public-inbox-httpd index 9b869f906032ed8e090f60d3c92ca62792ab47de..b2464f4efc0d31be9909c872c3969353e33768c6 100755 --- a/script/public-inbox-httpd +++ b/script/public-inbox-httpd @@ -24,13 +24,7 @@ require PublicInbox::WWW; my $www = PublicInbox::WWW->new; $www->preload; $app = builder { - # Perl 5.16.3 leaks in our "push" response code path - # (e.g. Qspawn) due to something in - # Plack::Util::response_cb, regardless of whether the - # client is sending Accept-Encoding:gzip requests. - # perl5180delta documents many leak fixes, so assume - # 5.18+ is safe for now and bump the check as-need: - $] >= 5.018000 and eval { + eval { enable 'Deflater', content_type => [ qw( text/html