* [ANN] yahns 1.11.0 -_- sleepy app server for Ruby
@ 2015-12-13 2:26 4% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-12-13 2:26 UTC (permalink / raw)
To: ruby-talk; +Cc: yahns-public
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.
Changes:
yahns 1.11.0 - more minor updates
There's some minor test case fixes and documentation updates.
For OpenSSL users running the Ruby 2.3.0 preview releases,
we now use `exception: false' for for accept_nonblock to reduce
exceptions. Non-SSL I/O still uses kgio for now.
6 changes since 1.10.0:
wbuf: fix typo in bug check for sendfile gem
test_wbuf: deal with proper zero-copy for Unix sockets
README: clarify and update copyright year
doc: document and reference sd_listen_fds(3) behavior
test_server: fix race condition in hooks test
openssl_client: use `exception: false' for accept_nonblock
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.
* git clone git://yhbt.net/yahns
* http://yahns.yhbt.net/README
* http://yahns.yhbt.net/NEWS.atom.xml
* we only accept plain-text email yahns-public@yhbt.net
* and archive all the mail we receive: http://yhbt.net/yahns-public/
* nntp://news.public-inbox.org/inbox.comp.lang.ruby.yahns
^ permalink raw reply [relevance 4%]
* [PATCH] test_wbuf: deal with proper zero-copy for Unix sockets
@ 2015-12-01 3:48 7% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-12-01 3:48 UTC (permalink / raw)
To: yahns-public
Linux 4.2 gained the ability to do true zero-copy sendfile support
for Unix sockets; so buffer space is accounted differently.
Previously Linux only avoided copies in userspace when doing
sendfile for Unix sockets, not internally within the kernel.
This kernel change has no bearing on normal code which would need to
account for concurrent draining by the client; only test code
designed to create a failure condition.
---
test/test_wbuf.rb | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/test/test_wbuf.rb b/test/test_wbuf.rb
index 0eacb08..0d7959c 100644
--- a/test/test_wbuf.rb
+++ b/test/test_wbuf.rb
@@ -71,8 +71,17 @@ class TestWbuf < Testcase
end while true
end
wbuf = Yahns::Wbuf.new([], true, Dir.tmpdir, :wait_writable)
- assert_equal :wait_writable, wbuf.wbuf_write(a, buf)
- assert_equal :wait_writable, wbuf.wbuf_flush(a)
+
+ rv1 = wbuf.wbuf_write(a, buf)
+ rv2 = wbuf.wbuf_flush(a)
+ case rv1
+ when nil
+ assert_equal true, rv2, 'some kernels succeed with real sendfile'
+ when :wait_writable
+ assert_equal :wait_writable, rv2, 'some block on sendfile'
+ else
+ flunk "unexpected from wbuf_write/flush: #{rv1.inspect} / #{rv2.inspect}"
+ end
# drain the buffer
Timeout.timeout(10) { b.read(b.nread) until b.nread == 0 }
--
EW
^ permalink raw reply related [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2015-12-01 3:48 7% [PATCH] test_wbuf: deal with proper zero-copy for Unix sockets Eric Wong
2015-12-13 2:26 4% [ANN] yahns 1.11.0 -_- sleepy app server for Ruby Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/yahns.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).