rainbows 4.5.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.wrongdoc.yml +1 -1
- data/ChangeLog +115 -1
- data/Documentation/rainbows.1.txt +2 -2
- data/GIT-VERSION-FILE +1 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +2 -2
- data/LATEST +14 -8
- data/LICENSE +9 -7
- data/NEWS +17 -0
- data/README +1 -1
- data/Rakefile +0 -37
- data/SIGNALS +10 -0
- data/lib/rainbows/base.rb +14 -5
- data/lib/rainbows/epoll.rb +2 -0
- data/lib/rainbows/error.rb +1 -1
- data/lib/rainbows/version.rb +1 -1
- data/lib/rainbows/xepoll.rb +2 -0
- data/lib/rainbows.rb +5 -2
- data/rainbows.gemspec +4 -3
- data/t/t0045-client_max_header_size.sh +1 -1
- data/t/test_isolate.rb +6 -6
- metadata +6 -18
data/.wrongdoc.yml
CHANGED
data/ChangeLog
CHANGED
|
@@ -1,5 +1,119 @@
|
|
|
1
|
-
ChangeLog from http://bogomips.org/rainbows.git (v0.97.0..v4.
|
|
1
|
+
ChangeLog from http://bogomips.org/rainbows.git (v0.97.0..v4.6.0)
|
|
2
2
|
|
|
3
|
+
commit 2dc55e417708d411987b4fb4233c87fe9f59ba0a
|
|
4
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
5
|
+
Date: Fri Jan 17 20:13:42 2014 +0000
|
|
6
|
+
|
|
7
|
+
Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility
|
|
8
|
+
|
|
9
|
+
The unicorn 4.8.0 internal changes unfortunately broke some
|
|
10
|
+
unoffically supported behavior we depended on. This release fixes
|
|
11
|
+
that, but as a result, we lose compatibility of older unicorn
|
|
12
|
+
versions. (Oops!, oh well... :x)
|
|
13
|
+
|
|
14
|
+
There's also minor bugfixes and documentation updates.
|
|
15
|
+
|
|
16
|
+
In order to ease transitions to future versions of the GPL, we are
|
|
17
|
+
now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
|
|
18
|
+
The old Ruby 1.8 license remains an option. If the FSF turns out
|
|
19
|
+
a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
|
|
20
|
+
|
|
21
|
+
commit 169d506907a711254802a8e86cc343c6322dfae3
|
|
22
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
23
|
+
Date: Fri Jan 17 20:25:06 2014 +0000
|
|
24
|
+
|
|
25
|
+
switch homepage to http://rainbows.bogomips.org/
|
|
26
|
+
|
|
27
|
+
RubyForge is going away, so we must migrate the homepage.
|
|
28
|
+
The mailing list will be migrated, soon.
|
|
29
|
+
|
|
30
|
+
commit 3e701ee74ff29bdf5daa3249acede5a85a2b0097
|
|
31
|
+
Author: Eric Wong <e@80x24.org>
|
|
32
|
+
Date: Fri Jan 17 02:03:04 2014 +0000
|
|
33
|
+
|
|
34
|
+
unicorn 4.8 compatibility + test version bumps
|
|
35
|
+
|
|
36
|
+
Internal reworking of unicorn 4.8.0 completely broke us(!).
|
|
37
|
+
This commit fixes things, but it means we no longer support
|
|
38
|
+
unicorn <= 4.7. Sorry about that.
|
|
39
|
+
|
|
40
|
+
commit 1b3e68e3eac0c3fbb2a32e4fddd26ee8a50ec627
|
|
41
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
42
|
+
Date: Fri Jan 17 01:31:43 2014 +0000
|
|
43
|
+
|
|
44
|
+
error: silence ETIMEDOUT and EHOSTUNREACH errors
|
|
45
|
+
|
|
46
|
+
There's nothing we can do about these errors due to
|
|
47
|
+
network failures and bad clients, either, so do not spew
|
|
48
|
+
a backtrace for them.
|
|
49
|
+
|
|
50
|
+
commit 877f44605ec1768e279843e36c214b656d191011
|
|
51
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
52
|
+
Date: Sat Oct 26 08:01:24 2013 +0000
|
|
53
|
+
|
|
54
|
+
license: allow all future versions of the GNU GPL
|
|
55
|
+
|
|
56
|
+
There is currently no GPLv4, so this change has no effect at the
|
|
57
|
+
moment.
|
|
58
|
+
|
|
59
|
+
In case the GPLv4 arrives and I am not alive to approve/review it,
|
|
60
|
+
the lesser of evils is have give blanket approval of all future GPL
|
|
61
|
+
versions (as published by the FSF). The worse evil is to be stuck
|
|
62
|
+
with a license which cannot guarantee the Free-ness of this project
|
|
63
|
+
in the future.
|
|
64
|
+
|
|
65
|
+
This unfortunately means the FSF can theoretically come out with
|
|
66
|
+
license terms I do not agree with, but the GPLv2 and GPLv3 will
|
|
67
|
+
always be an option to all users.
|
|
68
|
+
|
|
69
|
+
commit 008269885bcf1bbf99059d752970969f573d8867
|
|
70
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
71
|
+
Date: Mon Sep 30 18:19:49 2013 +0000
|
|
72
|
+
|
|
73
|
+
Rakefile: kill raa_update task
|
|
74
|
+
|
|
75
|
+
RAA is dead.
|
|
76
|
+
|
|
77
|
+
commit af09f23d530dd018bfd074a81d679a6ac815165e
|
|
78
|
+
Author: Lin Jen-Shin <godfat@godfat.org>
|
|
79
|
+
Date: Fri Sep 13 00:41:16 2013 +0800
|
|
80
|
+
|
|
81
|
+
Match against newer curl.
|
|
82
|
+
|
|
83
|
+
My curl 7.32.0 would actually print 400 Bad Request
|
|
84
|
+
Hope this would make it match against newer or older curl.
|
|
85
|
+
|
|
86
|
+
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
|
87
|
+
|
|
88
|
+
commit d4988043825d1082666b4c219f2d66659b0c350b
|
|
89
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
90
|
+
Date: Wed Sep 4 17:09:33 2013 +0000
|
|
91
|
+
|
|
92
|
+
SIGNALS: document SIGHUP/preload_app incompatibility
|
|
93
|
+
|
|
94
|
+
This was documented in the unicorn docs, but not Rainbows!
|
|
95
|
+
(The major difference between unicorn and Rainbows! signal
|
|
96
|
+
handling is the deferred handling of SIGUSR1 in unicorn vs
|
|
97
|
+
the immediate handling in Rainbows!)
|
|
98
|
+
|
|
99
|
+
commit 45261c67658d57f98b51d6bb37890f03b60240a9
|
|
100
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
101
|
+
Date: Wed Apr 24 23:08:32 2013 +0000
|
|
102
|
+
|
|
103
|
+
test_isolate: update raindrops to 0.11.0
|
|
104
|
+
|
|
105
|
+
raindrops 0.11.0 was released several days ago and contains
|
|
106
|
+
minor improvements + fixes.
|
|
107
|
+
|
|
108
|
+
commit 2a39832fdbf8054c514562735b1ab6c6544065fe
|
|
109
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
110
|
+
Date: Fri Mar 1 23:29:00 2013 +0000
|
|
111
|
+
|
|
112
|
+
epoll+xepoll: clarify intent of these concurrency options
|
|
113
|
+
|
|
114
|
+
Via private communication, I learned of a user using XEpoll
|
|
115
|
+
when he should not have been.
|
|
116
|
+
|
|
3
117
|
commit 4be3e386118969345ee5c94049efa7faae338e4d
|
|
4
118
|
Author: Eric Wong <normalperson@yhbt.net>
|
|
5
119
|
Date: Wed Feb 27 10:25:21 2013 +0000
|
|
@@ -155,7 +155,7 @@ RACKUP_FILE, some frameworks do not require them.
|
|
|
155
155
|
* [Rack RDoc][2]
|
|
156
156
|
* [Rackup HowTo][3]
|
|
157
157
|
|
|
158
|
-
[1]: http://rainbows.
|
|
158
|
+
[1]: http://rainbows.bogomips.org/
|
|
159
159
|
[2]: http://rack.rubyforge.org/doc/
|
|
160
160
|
[3]: http://wiki.github.com/rack/rack/tutorial-rackup-howto
|
|
161
|
-
[4]: http://rainbows.
|
|
161
|
+
[4]: http://rainbows.bogomips.org/SIGNALS.html
|
data/GIT-VERSION-FILE
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
GIT_VERSION = 4.
|
|
1
|
+
GIT_VERSION = 4.6.0
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# use GNU Make to run tests in parallel, and without depending on RubyGems
|
|
2
2
|
all::
|
|
3
|
-
RSYNC_DEST := rubyforge.org:/var/www/gforge-projects/rainbows
|
|
3
|
+
# RSYNC_DEST := rubyforge.org:/var/www/gforge-projects/rainbows
|
|
4
|
+
RSYNC_DEST := rainbows.bogomips.org:/srv/rainbows
|
|
4
5
|
rfproject := rainbows
|
|
5
6
|
rfpackage := rainbows
|
|
6
7
|
|
|
@@ -11,7 +12,6 @@ doc:: man-rdoc
|
|
|
11
12
|
include pkg.mk
|
|
12
13
|
ifneq ($(VERSION),)
|
|
13
14
|
release::
|
|
14
|
-
$(RAKE) raa_update VERSION=$(VERSION)
|
|
15
15
|
$(RAKE) publish_news VERSION=$(VERSION)
|
|
16
16
|
$(RAKE) fm_update VERSION=$(VERSION)
|
|
17
17
|
endif
|
data/LATEST
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
=== Rainbows! 4.
|
|
1
|
+
=== Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility / 2014-01-17 20:25 UTC
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
The unicorn 4.8.0 internal changes unfortunately broke some
|
|
4
|
+
unoffically supported behavior we depended on. This release fixes
|
|
5
|
+
that, but as a result, we lose compatibility of older unicorn
|
|
6
|
+
versions. (Oops!, oh well... :x)
|
|
7
7
|
|
|
8
|
-
There
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
There's also minor bugfixes and documentation updates.
|
|
9
|
+
The website is now at http://rainbows.bogomips.org/ since
|
|
10
|
+
RubyForge is shutting down. The mailing list will be migrated
|
|
11
|
+
soon.
|
|
12
|
+
|
|
13
|
+
In order to ease transitions to future versions of the GPL, we are
|
|
14
|
+
now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
|
|
15
|
+
The old Ruby 1.8 license remains an option. If the FSF turns out
|
|
16
|
+
a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
|
|
11
17
|
|
data/LICENSE
CHANGED
|
@@ -3,15 +3,17 @@ revision control for names and email addresses of all of them.
|
|
|
3
3
|
|
|
4
4
|
You can redistribute it and/or modify it under either the terms of the
|
|
5
5
|
GNU General Public License (GPL) as published by the Free Software
|
|
6
|
-
Foundation (FSF), version
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Foundation (FSF), either version 2 of the License, or (at your option)
|
|
7
|
+
any later version. We currently prefer the GPLv3 or later for
|
|
8
|
+
derivative works, but the GPLv2 is fine.
|
|
9
9
|
|
|
10
|
-
The
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
The complete texts of the GPLv2 and GPLv3 are below:
|
|
11
|
+
GPLv2 - http://www.gnu.org/licenses/gpl-2.0.txt
|
|
12
|
+
GPLv3 - http://www.gnu.org/licenses/gpl-3.0.txt
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
You may (against our _preference_) also use the Ruby 1.8 license terms.
|
|
15
|
+
|
|
16
|
+
=== Ruby 1.8-specific terms (if you're not using the GPLv2/GPLv3)
|
|
15
17
|
|
|
16
18
|
1. You may make and give away verbatim copies of the source form of the
|
|
17
19
|
software without restriction, provided that you duplicate all of the
|
data/NEWS
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
=== Rainbows! 4.6.0 - fix unicorn 4.8.0 compatibility / 2014-01-17 20:25 UTC
|
|
2
|
+
|
|
3
|
+
The unicorn 4.8.0 internal changes unfortunately broke some
|
|
4
|
+
unoffically supported behavior we depended on. This release fixes
|
|
5
|
+
that, but as a result, we lose compatibility of older unicorn
|
|
6
|
+
versions. (Oops!, oh well... :x)
|
|
7
|
+
|
|
8
|
+
There's also minor bugfixes and documentation updates.
|
|
9
|
+
The website is now at http://rainbows.bogomips.org/ since
|
|
10
|
+
RubyForge is shutting down. The mailing list will be migrated
|
|
11
|
+
soon.
|
|
12
|
+
|
|
13
|
+
In order to ease transitions to future versions of the GPL, we are
|
|
14
|
+
now "GPLv2 or later" instead of explicitly GPLv2 + GPLv3(-only).
|
|
15
|
+
The old Ruby 1.8 license remains an option. If the FSF turns out
|
|
16
|
+
a horrible GPLv4, users are free to continue using GPLv2 or GPLv3.
|
|
17
|
+
|
|
1
18
|
=== Rainbows! 4.5.0 - hijacking support / 2013-02-27 10:28 UTC
|
|
2
19
|
|
|
3
20
|
This release adds hijacking support for Rack 1.5.x users.
|
data/README
CHANGED
|
@@ -90,7 +90,7 @@ fast applications.
|
|
|
90
90
|
== License
|
|
91
91
|
|
|
92
92
|
\Rainbows! is copyright 2009,2010 by all contributors (see logs in git).
|
|
93
|
-
\Rainbows! is licensed under the Ruby (1.8) license or the
|
|
93
|
+
\Rainbows! is licensed under the Ruby (1.8) license or the GPLv2 or later.
|
|
94
94
|
See the included {LICENSE}[link:LICENSE.html] file for more details.
|
|
95
95
|
|
|
96
96
|
\Rainbows! is 100% Free Software.
|
data/Rakefile
CHANGED
|
@@ -35,43 +35,6 @@ task :publish_news do
|
|
|
35
35
|
rf.post_news('rainbows', subject, body)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
desc "post to RAA"
|
|
39
|
-
task :raa_update do
|
|
40
|
-
require 'net/http'
|
|
41
|
-
require 'net/netrc'
|
|
42
|
-
rc = Net::Netrc.locate('rainbows-raa') or abort "~/.netrc not found"
|
|
43
|
-
password = rc.password
|
|
44
|
-
|
|
45
|
-
s = Gem::Specification.load('rainbows.gemspec')
|
|
46
|
-
desc = [ s.description.strip ]
|
|
47
|
-
desc << ""
|
|
48
|
-
desc << "* #{s.email}"
|
|
49
|
-
desc << "* #{git_url}"
|
|
50
|
-
desc << "* #{cgit_url}"
|
|
51
|
-
desc = desc.join("\n")
|
|
52
|
-
uri = URI.parse('http://raa.ruby-lang.org/regist.rhtml')
|
|
53
|
-
form = {
|
|
54
|
-
:name => s.name,
|
|
55
|
-
:short_description => s.summary,
|
|
56
|
-
:version => s.version.to_s,
|
|
57
|
-
:status => 'experimental',
|
|
58
|
-
:owner => s.authors.first,
|
|
59
|
-
:email => s.email,
|
|
60
|
-
:category_major => 'Library',
|
|
61
|
-
:category_minor => 'Web',
|
|
62
|
-
:url => s.homepage,
|
|
63
|
-
:download => "http://rubyforge.org/frs/?group_id=8977",
|
|
64
|
-
:license => "Ruby's",
|
|
65
|
-
:description_style => 'Plain',
|
|
66
|
-
:description => desc,
|
|
67
|
-
:pass => password,
|
|
68
|
-
:submit => "Update",
|
|
69
|
-
}
|
|
70
|
-
res = Net::HTTP.post_form(uri, form)
|
|
71
|
-
p res
|
|
72
|
-
puts res.body
|
|
73
|
-
end
|
|
74
|
-
|
|
75
38
|
desc "post to FM"
|
|
76
39
|
task :fm_update do
|
|
77
40
|
require 'net/http'
|
data/SIGNALS
CHANGED
|
@@ -10,6 +10,16 @@ between \Rainbows!, Unicorn and nginx.
|
|
|
10
10
|
=== Master Process
|
|
11
11
|
|
|
12
12
|
* HUP - reload config file, app, and gracefully restart all workers
|
|
13
|
+
If the "preload_app" directive is false (the default), then workers
|
|
14
|
+
will also pick up any application code changes when restarted. If
|
|
15
|
+
"preload_app" is true, then application code changes will have no
|
|
16
|
+
effect; USR2 + QUIT (see below) must be used to load newer code in
|
|
17
|
+
this case. When reloading the application, +Gem.refresh+ will
|
|
18
|
+
be called so updated code for your application can pick up newly
|
|
19
|
+
installed RubyGems. It is not recommended that you uninstall
|
|
20
|
+
libraries your application depends on while Rainbows! is running,
|
|
21
|
+
as respawned workers may enter a spawn loop when they fail to
|
|
22
|
+
load an uninstalled dependency.
|
|
13
23
|
|
|
14
24
|
* INT/TERM - quick shutdown, kills all workers immediately
|
|
15
25
|
|
data/lib/rainbows/base.rb
CHANGED
|
@@ -8,24 +8,33 @@
|
|
|
8
8
|
module Rainbows::Base
|
|
9
9
|
# :stopdoc:
|
|
10
10
|
|
|
11
|
+
def sig_receiver(worker)
|
|
12
|
+
begin
|
|
13
|
+
worker.to_io.kgio_wait_readable
|
|
14
|
+
worker.kgio_tryaccept # Unicorn::Worker#kgio_tryaccept
|
|
15
|
+
rescue => e
|
|
16
|
+
Rainbows.alive or return
|
|
17
|
+
Unicorn.log_error(Rainbows.server.logger, "signal receiver", e)
|
|
18
|
+
end while true
|
|
19
|
+
end
|
|
20
|
+
|
|
11
21
|
# this method is called by all current concurrency models
|
|
12
22
|
def init_worker_process(worker) # :nodoc:
|
|
13
|
-
super(worker)
|
|
23
|
+
readers = super(worker)
|
|
14
24
|
Rainbows::Response.setup
|
|
15
25
|
Rainbows::MaxBody.setup
|
|
16
26
|
Rainbows.worker = worker
|
|
17
27
|
|
|
18
|
-
# we're don't use the self-pipe mechanism in the Rainbows! worker
|
|
19
|
-
# since we don't defer reopening logs
|
|
20
|
-
Rainbows::HttpServer::SELF_PIPE.each { |x| x.close }.clear
|
|
21
|
-
|
|
22
28
|
# spawn Threads since Logger takes a mutex by default and
|
|
23
29
|
# we can't safely lock a mutex in a signal handler
|
|
24
30
|
trap(:USR1) { Thread.new { reopen_worker_logs(worker.nr) } }
|
|
25
31
|
trap(:QUIT) { Thread.new { Rainbows.quit! } }
|
|
26
32
|
[:TERM, :INT].each { |sig| trap(sig) { exit!(0) } } # instant shutdown
|
|
27
33
|
Rainbows::ProcessClient.const_set(:APP, Rainbows.server.app)
|
|
34
|
+
Thread.new { sig_receiver(worker) }
|
|
28
35
|
logger.info "Rainbows! #@use worker_connections=#@worker_connections"
|
|
36
|
+
Rainbows.readers = readers # for Rainbows.quit
|
|
37
|
+
readers # unicorn 4.8+ needs this
|
|
29
38
|
end
|
|
30
39
|
|
|
31
40
|
def process_client(client)
|
data/lib/rainbows/epoll.rb
CHANGED
|
@@ -19,6 +19,8 @@ require 'sendfile'
|
|
|
19
19
|
# small enough to always be in your kernel page cache. This concurrency
|
|
20
20
|
# model may starve clients if you have slow disks and large static files.
|
|
21
21
|
#
|
|
22
|
+
# Do not use this if you have slow external dependencies.
|
|
23
|
+
#
|
|
22
24
|
# === RubyGem Requirements
|
|
23
25
|
#
|
|
24
26
|
# * raindrops 0.6.0 or later
|
data/lib/rainbows/error.rb
CHANGED
|
@@ -25,7 +25,7 @@ module Rainbows::Error
|
|
|
25
25
|
def self.response(e)
|
|
26
26
|
case e
|
|
27
27
|
when EOFError, Errno::ECONNRESET, Errno::EPIPE, Errno::EINVAL,
|
|
28
|
-
Errno::EBADF, Errno::ENOTCONN
|
|
28
|
+
Errno::EBADF, Errno::ENOTCONN, Errno::ETIMEDOUT, Errno::EHOSTUNREACH
|
|
29
29
|
# swallow error if client shuts down one end or disconnects
|
|
30
30
|
when Unicorn::HttpParserError
|
|
31
31
|
Rainbows::Const::ERROR_400_RESPONSE # try to tell the client they're bad
|
data/lib/rainbows/version.rb
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Rainbows::Const::RAINBOWS_VERSION = '4.
|
|
1
|
+
Rainbows::Const::RAINBOWS_VERSION = '4.6.0'
|
data/lib/rainbows/xepoll.rb
CHANGED
|
@@ -7,6 +7,8 @@ require 'rainbows/epoll'
|
|
|
7
7
|
# for Ruby 1.9 users as it can avoid accept()-scalability issues on
|
|
8
8
|
# multicore machines with many worker processes.
|
|
9
9
|
#
|
|
10
|
+
# Do not use this if you have slow external dependencies.
|
|
11
|
+
#
|
|
10
12
|
# === RubyGem Requirements
|
|
11
13
|
#
|
|
12
14
|
# * raindrops 0.6.0 or later
|
data/lib/rainbows.rb
CHANGED
|
@@ -4,7 +4,7 @@ require 'unicorn'
|
|
|
4
4
|
# the value passed to TCP_DEFER_ACCEPT actually matters in Linux 2.6.32+
|
|
5
5
|
Unicorn::SocketHelper::DEFAULTS[:tcp_defer_accept] = 60
|
|
6
6
|
|
|
7
|
-
# See http://rainbows.
|
|
7
|
+
# See http://rainbows.bogomips.org/ for documentation
|
|
8
8
|
module Rainbows
|
|
9
9
|
# :stopdoc:
|
|
10
10
|
O = {}
|
|
@@ -55,6 +55,7 @@ module Rainbows
|
|
|
55
55
|
attr_reader :alive
|
|
56
56
|
attr_writer :worker
|
|
57
57
|
attr_writer :forked
|
|
58
|
+
attr_writer :readers
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
def self.config!(mod, *opts)
|
|
@@ -88,7 +89,9 @@ module Rainbows
|
|
|
88
89
|
@alive = false
|
|
89
90
|
Rainbows::HttpParser.quit
|
|
90
91
|
@expire = Time.now + (@server.timeout * 2.0)
|
|
91
|
-
|
|
92
|
+
tmp = @readers.dup
|
|
93
|
+
@readers.clear
|
|
94
|
+
tmp.each { |s| s.close rescue nil }.clear
|
|
92
95
|
@at_quit.each { |task| task.call }
|
|
93
96
|
end
|
|
94
97
|
false
|
data/rainbows.gemspec
CHANGED
|
@@ -28,8 +28,9 @@ Gem::Specification.new do |s|
|
|
|
28
28
|
s.add_dependency(%q<kgio>, ['~> 2.5'])
|
|
29
29
|
|
|
30
30
|
# we need Unicorn for the HTTP parser and process management
|
|
31
|
-
#
|
|
32
|
-
|
|
31
|
+
# we need unicorn 4.8.0+ since we depend on undocumented/unsupported
|
|
32
|
+
# unicorn internals.
|
|
33
|
+
s.add_dependency(%q<unicorn>, ["~> 4.8"])
|
|
33
34
|
|
|
34
35
|
s.add_development_dependency(%q<isolate>, "~> 3.1")
|
|
35
36
|
s.add_development_dependency(%q<wrongdoc>, "~> 1.6")
|
|
@@ -57,5 +58,5 @@ Gem::Specification.new do |s|
|
|
|
57
58
|
|
|
58
59
|
# We inherited the Ruby 1.8 license from Mongrel, so we're stuck with it.
|
|
59
60
|
# GPLv3 is preferred.
|
|
60
|
-
s.licenses = ["GPLv2", "
|
|
61
|
+
s.licenses = ["GPLv2+", "Ruby 1.8"]
|
|
61
62
|
end
|
|
@@ -60,7 +60,7 @@ t_begin "smallest HTTP/0.9 request works right" && {
|
|
|
60
60
|
|
|
61
61
|
t_begin "HTTP/1.1 request fails" && {
|
|
62
62
|
curl -vsSf http://$listen/ > $tmp 2>&1 && die "unexpected curl success"
|
|
63
|
-
grep '400
|
|
63
|
+
grep '400\( Bad Request\)\?$' $tmp
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
t_begin "increase client_max_header_size on reload" && {
|
data/t/test_isolate.rb
CHANGED
|
@@ -16,14 +16,14 @@ $stdout.reopen($stderr)
|
|
|
16
16
|
lock = File.open(__FILE__, "rb")
|
|
17
17
|
lock.flock(File::LOCK_EX)
|
|
18
18
|
Isolate.now!(opts) do
|
|
19
|
-
gem 'kgio', '2.8.
|
|
19
|
+
gem 'kgio', '2.8.1'
|
|
20
20
|
gem 'rack', '1.5.2'
|
|
21
21
|
gem 'kcar', '0.4.0'
|
|
22
|
-
gem 'raindrops', '0.
|
|
23
|
-
gem 'unicorn', '4.
|
|
22
|
+
gem 'raindrops', '0.12.0'
|
|
23
|
+
gem 'unicorn', '4.8.0'
|
|
24
24
|
|
|
25
25
|
if engine == "ruby"
|
|
26
|
-
gem 'sendfile', '1.1
|
|
26
|
+
gem 'sendfile', '1.2.1'
|
|
27
27
|
gem 'cool.io', '1.1.0'
|
|
28
28
|
|
|
29
29
|
gem 'eventmachine', '1.0.0'
|
|
@@ -39,10 +39,10 @@ Isolate.now!(opts) do
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
if RUBY_PLATFORM =~ /linux/
|
|
42
|
-
gem 'sleepy_penguin', '3.
|
|
42
|
+
gem 'sleepy_penguin', '3.3.0'
|
|
43
43
|
|
|
44
44
|
# is 2.6.32 new enough?
|
|
45
|
-
gem 'io_splice', '4.
|
|
45
|
+
gem 'io_splice', '4.2.0' if `uname -r`.strip > '2.6.32'
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: !binary |-
|
|
3
3
|
cmFpbmJvd3M=
|
|
4
4
|
version: !ruby/object:Gem::Version
|
|
5
|
-
version: 4.
|
|
5
|
+
version: 4.6.0
|
|
6
6
|
prerelease:
|
|
7
7
|
platform: ruby
|
|
8
8
|
authors:
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: !binary |-
|
|
@@ -64,12 +64,7 @@ dependencies:
|
|
|
64
64
|
fj4=
|
|
65
65
|
- !ruby/object:Gem::Version
|
|
66
66
|
version: !binary |-
|
|
67
|
-
|
|
68
|
-
- - !binary |-
|
|
69
|
-
Pj0=
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: !binary |-
|
|
72
|
-
NC42LjI=
|
|
67
|
+
NC44
|
|
73
68
|
type: :runtime
|
|
74
69
|
prerelease: false
|
|
75
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -79,12 +74,7 @@ dependencies:
|
|
|
79
74
|
fj4=
|
|
80
75
|
- !ruby/object:Gem::Version
|
|
81
76
|
version: !binary |-
|
|
82
|
-
|
|
83
|
-
- - !binary |-
|
|
84
|
-
Pj0=
|
|
85
|
-
- !ruby/object:Gem::Version
|
|
86
|
-
version: !binary |-
|
|
87
|
-
NC42LjI=
|
|
77
|
+
NC44
|
|
88
78
|
- !ruby/object:Gem::Dependency
|
|
89
79
|
name: !binary |-
|
|
90
80
|
aXNvbGF0ZQ==
|
|
@@ -475,12 +465,10 @@ files:
|
|
|
475
465
|
- t/worker-follows-master-to-death.ru
|
|
476
466
|
- t/write-on-close.ru
|
|
477
467
|
- vs_Unicorn
|
|
478
|
-
homepage: http://rainbows.
|
|
468
|
+
homepage: http://rainbows.bogomips.org/
|
|
479
469
|
licenses:
|
|
480
470
|
- !binary |-
|
|
481
|
-
|
|
482
|
-
- !binary |-
|
|
483
|
-
R1BMdjM=
|
|
471
|
+
R1BMdjIr
|
|
484
472
|
- !binary |-
|
|
485
473
|
UnVieSAxLjg=
|
|
486
474
|
post_install_message:
|