yahns Ruby server user/dev discussion
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] yahns 1.3.1 - fix large response corruption
@ 2014-07-16 20:13  5% Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2014-07-16 20:13 UTC (permalink / raw)
  To: yahns-public

This release contains a major bug fix noticeable on FreeBSD VMs, but
should affect Linux systems making large responses which require
output buffering, too.

- test_server: avoid multiple workers for dead parent check
- wbuf: avoid corrupted large responses with zero-copy sendfile

* git clone git://yhbt.net/yahns
* http://yahns.yhbt.net/README
* http://yahns.yhbt.net/NEWS.atom.xml
* yahns-public@yhbt.net

^ permalink raw reply	[relevance 5%]

* [PATCH 1/2] test_server: avoid multiple workers for dead parent check
  2014-07-16 19:57  5% [PATCH 0/2] FreeBSD-related fixes (affects Linux users, too) Eric Wong
@ 2014-07-16 19:57  7% ` Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2014-07-16 19:57 UTC (permalink / raw)
  To: yahns-public; +Cc: e, EW

From: EW <e+fbsd@80x24.org>

This test is less reliable when there are multiple workers as the
second worker may not be ready to detect a dead parent.
This is still a possible race if the master dies very quicklly
before a worker is fully setup.
---
 test/test_server.rb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/test/test_server.rb b/test/test_server.rb
index bd38ce3..69babb3 100644
--- a/test/test_server.rb
+++ b/test/test_server.rb
@@ -302,7 +302,7 @@ class TestServer < Testcase
   end
 
   def test_mp_dead_parent
-    pid, host, port = new_mp_server
+    pid, host, port = new_mp_server(1)
     wpid = nil
     run_client(host, port) do |res|
       wpid ||= res.body.to_i
@@ -334,7 +334,7 @@ class TestServer < Testcase
     c.close
   end
 
-  def new_mp_server(nr = 1)
+  def new_mp_server(nr = 2)
     ru = @ru = tmpfile(%w(config .ru))
     @ru.puts('a = $$.to_s')
     @ru.puts('run lambda { |_| [ 200, {"Content-Length"=>a.size.to_s},[a]]}')
@@ -342,7 +342,7 @@ class TestServer < Testcase
     cfg = Yahns::Config.new
     host, port = @srv.addr[3], @srv.addr[1]
     cfg.instance_eval do
-      worker_processes 2
+      worker_processes nr
       GTL.synchronize { app(:rack, ru.path) { listen "#{host}:#{port}" } }
       logger(Logger.new(File.open(err.path, "a")))
     end
-- 
EW


^ permalink raw reply related	[relevance 7%]

* [PATCH 0/2] FreeBSD-related fixes (affects Linux users, too)
@ 2014-07-16 19:57  5% Eric Wong
  2014-07-16 19:57  7% ` [PATCH 1/2] test_server: avoid multiple workers for dead parent check Eric Wong
  0 siblings, 1 reply; 3+ results
From: Eric Wong @ 2014-07-16 19:57 UTC (permalink / raw)
  To: yahns-public; +Cc: e

[PATCH 1/2] test_server: avoid multiple workers for dead parent check
A minor test patch I had queued on my FreeBSD VM but never pushed.

[PATCH 2/2] wbuf: avoid corrupted large responses with zero-copy
This is a major fix, and likely to affect some Linux users with
large responses and fast clients.

Will push a new 1.3.1 release soon.

^ permalink raw reply	[relevance 5%]

Results 1-3 of 3 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2014-07-16 19:57  5% [PATCH 0/2] FreeBSD-related fixes (affects Linux users, too) Eric Wong
2014-07-16 19:57  7% ` [PATCH 1/2] test_server: avoid multiple workers for dead parent check Eric Wong
2014-07-16 20:13  5% [ANN] yahns 1.3.1 - fix large response corruption 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).