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: X-Spam-Status: No, score=-3.4 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD,URIBL_BLOCKED shortcircuit=no autolearn=unavailable version=3.3.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPSA id 271FD2018D; Mon, 2 May 2016 19:47:16 +0000 (UTC) Date: Mon, 2 May 2016 19:47:15 +0000 From: Eric Wong To: ruby-talk@ruby-lang.org, yahns-public@yhbt.net Subject: [ANN] yahns 1.12.4 -_- sleepy app server for Ruby Message-ID: <20160502-yahns-1.12.4-unle@shed> References: <20160408-yahns-1.12.3-unle@shed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160408-yahns-1.12.3-unle@shed> List-Id: A Free Software, multi-threaded, non-blocking network application server designed for low _idle_ power consumption. It is primarily optimized for applications with occasional users which see little or no traffic. yahns currently hosts Rack/HTTP applications, but may eventually support other application types. Unlike some existing servers, yahns is extremely sensitive to fatal bugs in the applications it hosts. * git clone git://yhbt.net/yahns * https://yahns.yhbt.net/README * https://yahns.yhbt.net/NEWS.atom.xml * we only accept plain-text email yahns-public@yhbt.net * and archive all the mail we receive: https://yhbt.net/yahns-public/ * nntp://news.public-inbox.org/inbox.comp.lang.ruby.yahns Changes: yahns 1.12.4 - rack.hijack and proxy_pass bugfixes This release fixes some resource leaks in uncommonly used parts of yahns as well as including some documentation improvements. No need to upgrade unless you rely on rack.hijack for responses or use the (currently-undocumented) proxy_pass module(*). 9 non-merge changes since 1.12.3: proxy_pass: honor wbuf_persist when ending response proxy_http_response: fix non-terminated fast responses, too test_proxy_pass: test for auto chunking on 1.0 backends wbuf: drop persistence if writing to client fails proxy_http_response: cleanup: avoid redundant setting of "alive" proxy_http_response: do not persist upstream on slow clients proxy_pass: drop resources immediately on errors document Rack::Chunked/ContentLength semi-requirements extras/exec_cgi: document cgit example Documentation/yahns-rackup.pod | 10 ++++++++++ GIT-VERSION-GEN | 2 +- examples/yahns_rack_basic.conf.rb | 6 ++++++ extras/exec_cgi.rb | 8 ++++++++ lib/yahns/proxy_http_response.rb | 40 ++++++++++++++++++++++----------------- lib/yahns/proxy_pass.rb | 5 +++-- lib/yahns/wbuf_common.rb | 1 + test/test_proxy_pass.rb | 15 +++++++++++++++ 8 files changed, 67 insertions(+), 20 deletions(-) (*) 1.13.0 will include refactoring in proxy_pass and possibly documenting it as stable-enough-for-public use: https://yhbt.net/yahns-public/20160220081619.GA10850@dcvr.yhbt.net/t/ Please note the disclaimer: yahns is extremely sensitive to fatal bugs in the apps it hosts. There is no (and never will be) any built-in "watchdog"-type feature to kill stuck processes/threads. Each yahns process may be handling thousands of clients; unexpectedly killing the process will abort _all_ of those connections. Lives may be lost! yahns hackers are not responsible for your application/library bugs. Use an application server which is tolerant of buggy applications if you cannot be bothered to fix all your fatal bugs.