unicorn 5.2.0 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75575863e5a09d4ac351269084628052c8ec554c
4
- data.tar.gz: 5f7fc37e895b8982c3076fc56642ec90d8632d46
3
+ metadata.gz: cae827cc4674fdbfd9291caf3037f0fe4a5e67b7
4
+ data.tar.gz: e6518f02407def59575f3efb01a54019e0fdcab9
5
5
  SHA512:
6
- metadata.gz: 85c7d9f5d6c3056508758a7375809d477ee7e640167470711e4fda53e7f6c52ea6688e708fde80af5e54262dcdd218c0ef9fc966221c1e30762b0bdabf5c41fb
7
- data.tar.gz: 1829ab9e474b1932617c97e37d6efa1075c1c147f8aa726777478741b5ae9106a163194647e03ff8d73786017dd2142afad8804d16625fde48876e10dc0e3a30
6
+ metadata.gz: 2a9bd5f4dacb2aa56002b9899d1725bdfc124def5b9287ff464b3ed0e47785db1aa14b52757173d990972ad5a3a4afc44e37f052f7ef8ac92ae7fac0daa3645d
7
+ data.tar.gz: da9be558581cb34ee8b8c81bdcfcd659dc5e26d0cc42aa291ced5749ea07cbfe14fdce7a2fbfd43339990331e9c58e346d0129ea035c817ff59c8825d34f5645
data/.manifest CHANGED
@@ -140,6 +140,7 @@ test/benchmark/stack.ru
140
140
  test/exec/README
141
141
  test/exec/test_exec.rb
142
142
  test/test_helper.rb
143
+ test/unit/test_ccc.rb
143
144
  test/unit/test_configurator.rb
144
145
  test/unit/test_droplet.rb
145
146
  test/unit/test_http_parser.rb
data/.olddoc.yml CHANGED
@@ -12,7 +12,6 @@ noindex:
12
12
  - TODO
13
13
  - unicorn_rails_1
14
14
  public_email: unicorn-public@bogomips.org
15
- private_email: unicorn@bogomips.org
16
15
  nntp_url:
17
16
  - nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn
18
17
  - nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
data/GIT-VERSION-FILE CHANGED
@@ -1 +1 @@
1
- GIT_VERSION = 5.2.0
1
+ GIT_VERSION = 5.3.1
data/GIT-VERSION-GEN CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- DEF_VER = "v5.2.0"
2
+ DEF_VER = "v5.3.1"
3
3
  CONSTANT = "Unicorn::Const::UNICORN_VERSION"
4
4
  RVF = "lib/unicorn/version.rb"
5
5
  GVF = "GIT-VERSION-FILE"
data/HACKING CHANGED
@@ -104,7 +104,6 @@ don't email the git mailing list or maintainer with Unicorn patches :)
104
104
 
105
105
  In order to build the gem, you must install the following components:
106
106
 
107
- * olddoc (RubyGem)
108
107
  * pandoc
109
108
 
110
109
  You can build the Unicorn gem with the following command:
data/ISSUES CHANGED
@@ -9,14 +9,16 @@ submit patches and/or obtain support after you have searched the
9
9
  * Cc: all participants in a thread or commit, as subscription is optional
10
10
  * Do not {top post}[http://catb.org/jargon/html/T/top-post.html] in replies
11
11
  * Quote as little as possible of the message you're replying to
12
- * Do not send HTML mail or images, it will be flagged as spam
13
- * Anonymous and pseudonymous messages will always be welcome.
12
+ * Do not send HTML mail or images,
13
+ they hurt reader privacy and will be flagged as spam
14
+ * Anonymous and pseudonymous messages will ALWAYS be welcome
14
15
  * The email submission port (587) is enabled on the bogomips.org MX:
15
16
  https://bogomips.org/unicorn-public/20141004232241.GA23908@dcvr.yhbt.net/t/
16
17
 
17
18
  If your issue is of a sensitive nature or you're just shy in public,
18
- then feel free to email us privately at mailto:unicorn@bogomips.org
19
- instead and your issue will be handled discreetly.
19
+ use anonymity tools such as Tor or Mixmaster; and rely on the public
20
+ mail archives for responses. Be sure to scrub sensitive log messages
21
+ and such.
20
22
 
21
23
  If you don't get a response within a few days, we may have forgotten
22
24
  about it so feel free to ask again.
@@ -64,14 +66,14 @@ document distributed with git) on guidelines for patch submission.
64
66
  == Contact Info
65
67
 
66
68
  * public: mailto:unicorn-public@bogomips.org
67
- * private: mailto:unicorn@bogomips.org
68
69
  * nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
69
70
  * nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn
70
71
  * https://bogomips.org/unicorn-public/
72
+ * http://ou63pmih66umazou.onion/unicorn-public/
71
73
 
72
74
  Mailing list subscription is optional, so Cc: all participants.
73
75
 
74
- You can follow along via NNTP:
76
+ You can follow along via NNTP (read-only):
75
77
 
76
78
  nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn
77
79
  nntp://news.gmane.org/gmane.comp.lang.ruby.unicorn.general
@@ -79,6 +81,7 @@ You can follow along via NNTP:
79
81
  Or Atom feeds:
80
82
 
81
83
  https://bogomips.org/unicorn-public/new.atom
84
+ http://ou63pmih66umazou.onion/unicorn-public/new.atom
82
85
 
83
86
  The HTML archives at https://bogomips.org/unicorn-public/
84
87
  also has links to per-thread Atom feeds and downloadable
@@ -88,3 +91,6 @@ You may optionally subscribe via plain-text email:
88
91
 
89
92
  mailto:unicorn-public+subscribe@bogomips.org
90
93
  (and confirming the auto-reply)
94
+
95
+ Just keep in mind we suck at delivering email, so using NNTP,
96
+ or Atom feeds might be a better bet...
data/LATEST CHANGED
@@ -1,37 +1,103 @@
1
- === unicorn 5.1.0 - rack is optional, again / 2016-04-01 00:35 UTC
1
+ === unicorn 5.3.0 / 2017-04-01 08:03 UTC
2
2
 
3
- Note: no code changes since 5.1.0.pre1 from January.^WNo, wait,
4
- last minute performance improvement added today. See below.
3
+ A couple of portability fixes from Dylan Thacker-Smith and
4
+ Jeremy Evans since 5.3.0.pre1 over a week ago, but this looks
5
+ ready for a stable release, today.
5
6
 
6
- The big change is rack is not required (but still recommended).
7
- Applications are expected to depend on rack on their own so they can
8
- specify the version of rack they prefer without unicorn pulling
9
- in a newer, potentially incompatible version.
7
+ When I started this over 8 years ago, I wondered if this would
8
+ just end up being an April Fools' joke. Guess not. I guess I
9
+ somehow tricked people into using a terribly marketed web server
10
+ that cannot talk directly to untrusted clients :x Anyways,
11
+ unicorn won't be able to handle slow clients 8 years from now,
12
+ either, or 80 years from now. And I vow never to learn to use
13
+ new-fangled things like epoll, kqueue, or threads :P
10
14
 
11
- unicorn will always attempt to work with multiple versions of rack
12
- as practical.
15
+ Anyways, this is a largish release with several new features,
16
+ and no backwards incompatibilities.
13
17
 
14
- The HTTP parser also switched to using the TypedData C-API for
15
- extra type safety and memory usage accounting support in the
16
- 'objspace' extension.
18
+ Simon Eskildsen contributed heavily using TCP_INFO under Linux
19
+ to implement the (now 5 year old) check_client_connection feature:
17
20
 
18
- Thanks to Adam Duke to bringing the rack change to our attention
19
- and Aaron Patterson for helping with the matter.
21
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-check_client_connection
22
+ https://bogomips.org/unicorn-public/?q=s:check_client_connection&d:..20170401&x=t
20
23
 
21
- Last minute change: we now support the new leftpad() syscall under
22
- Linux for major performance and security improvement:
24
+ This also led to FreeBSD and OpenBSD portability improvements in
25
+ one of our dependencies, raindrops:
23
26
 
24
- http://mid.gmane.org/1459463613-32473-1-git-send-email-richard@nod.at
27
+ https://bogomips.org/raindrops-public/20170323024829.GA5190@dcvr/T/#u
25
28
 
26
- 8^H9 changes since 5.0.1:
29
+ Jeremy Evans contributed several new features. First he
30
+ implemented after_worker_exit to aid debugging:
27
31
 
28
- http: TypedData C-API conversion
29
- various documentation updates
30
- doc: bump olddoc to ~> 1.2 for extra NNTP URL
31
- rack is optional at runtime, required for dev
32
- doc update for ClientShutdown exceptions class
33
- unicorn 5.1.0.pre1 - rack is optional, again
34
- doc: reference --keep-file-descriptors for "bundle exec"
35
- doc: further trimming to reduce noise
36
- use leftpad Linux syscall for speed!
32
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_exit
33
+ https://bogomips.org/unicorn-public/?q=s:after_worker_exit&d:..20170401&x=t#t
34
+
35
+ And then security-related features to isolate workers. Workers
36
+ may now chroot to drop access to the master filesystem, and the
37
+ new after_worker_ready configuration hook now exists to aid with
38
+ chroot support in workers:
39
+
40
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_ready
41
+ https://bogomips.org/unicorn/Unicorn/Worker.html#method-i-user
42
+ https://bogomips.org/unicorn-public/?q=s:after_worker_ready&d:..20170401&x=t#t
43
+ https://bogomips.org/unicorn-public/?q=s:chroot&d:..20170401&x=t#t
44
+
45
+ Additionally, workers may run in a completely different VM space
46
+ (nullifying preload_app and any CoW savings) with the new
47
+ worker_exec option:
48
+
49
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-worker_exec
50
+ https://bogomips.org/unicorn-public/?q=s:worker_exec&d:..20170401&x=t#t
51
+
52
+ There are also several improvements to FreeBSD and OpenBSD
53
+ support with the addition of these features.
54
+
55
+ shortlog of changes since v5.2.0 (2016-10-31):
56
+
57
+ Dylan Thacker-Smith (1):
58
+ Check for Socket::TCP_INFO constant before trying to get TCP_INFO
59
+
60
+ Eric Wong (30):
61
+ drop rb_str_set_len compatibility replacement
62
+ TUNING: document THP caveat for Linux users
63
+ tee_input: simplify condition for IO#write
64
+ remove response_start_sent
65
+ http_request: freeze constant strings passed IO#write
66
+ Revert "remove response_start_sent"
67
+ t/t0012-reload-empty-config.sh: access ivars directly if needed
68
+ t0011-active-unix-socket.sh: fix race condition in test
69
+ new test for check_client_connection
70
+ revert signature change to HttpServer#process_client
71
+ support "struct tcp_info" on non-Linux and Ruby 2.2+
72
+ unicorn_http: reduce rb_global_variable calls
73
+ oob_gc: rely on opt_aref_with optimization on Ruby 2.2+
74
+ http_request: reduce insn size for check_client_connection
75
+ freebsd: avoid EINVAL when setting accept filter
76
+ test-lib: expr(1) portability fix
77
+ tests: keep disabled tests defined
78
+ test_exec: SO_KEEPALIVE value only needs to be true
79
+ doc: fix links to raindrops project
80
+ http_request: support proposed Raindrops::TCP states on non-Linux
81
+ ISSUES: expand on mail archive info + subscription disclaimer
82
+ test_ccc: use a pipe to synchronize test
83
+ doc: remove private email support address
84
+ input: update documentation and hide internals.
85
+ http_server: initialize @pid ivar
86
+ gemspec: remove olddoc from build dependency
87
+ doc: add version annotations for new features
88
+ unicorn 5.3.0.pre1
89
+ doc: note after_worker_exit is also 5.3.0+
90
+ test_exec: SO_KEEPALIVE value only needs to be true (take #2)
91
+
92
+ Jeremy Evans (7):
93
+ Add after_worker_exit configuration option
94
+ Fix code example in after_worker_exit documentation
95
+ Add support for chroot to Worker#user
96
+ Add after_worker_ready configuration option
97
+ Add worker_exec configuration option
98
+ Don't pass a block for fork when forking workers
99
+ Check for SocketError on first ccc attempt
100
+
101
+ Simon Eskildsen (1):
102
+ check_client_connection: use tcp state on linux
37
103
 
data/Links CHANGED
@@ -23,7 +23,7 @@ or services behind them.
23
23
  * {golden_brindle}[https://github.com/simonoff/golden_brindle] - tool to
24
24
  manage multiple unicorn instances/applications on a single server
25
25
 
26
- * {raindrops}[http://raindrops.bogomips.org/] - real-time stats for
26
+ * {raindrops}[https://bogomips.org/raindrops/] - real-time stats for
27
27
  preforking Rack servers
28
28
 
29
29
  * {UnXF}[https://bogomips.org/unxf/] Un-X-Forward* the Rack environment,
data/NEWS CHANGED
@@ -1,3 +1,219 @@
1
+ === unicorn 5.3.0 / 2017-04-01 08:03 UTC
2
+
3
+ A couple of portability fixes from Dylan Thacker-Smith and
4
+ Jeremy Evans since 5.3.0.pre1 over a week ago, but this looks
5
+ ready for a stable release, today.
6
+
7
+ When I started this over 8 years ago, I wondered if this would
8
+ just end up being an April Fools' joke. Guess not. I guess I
9
+ somehow tricked people into using a terribly marketed web server
10
+ that cannot talk directly to untrusted clients :x Anyways,
11
+ unicorn won't be able to handle slow clients 8 years from now,
12
+ either, or 80 years from now. And I vow never to learn to use
13
+ new-fangled things like epoll, kqueue, or threads :P
14
+
15
+ Anyways, this is a largish release with several new features,
16
+ and no backwards incompatibilities.
17
+
18
+ Simon Eskildsen contributed heavily using TCP_INFO under Linux
19
+ to implement the (now 5 year old) check_client_connection feature:
20
+
21
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-check_client_connection
22
+ https://bogomips.org/unicorn-public/?q=s:check_client_connection&d:..20170401&x=t
23
+
24
+ This also led to FreeBSD and OpenBSD portability improvements in
25
+ one of our dependencies, raindrops:
26
+
27
+ https://bogomips.org/raindrops-public/20170323024829.GA5190@dcvr/T/#u
28
+
29
+ Jeremy Evans contributed several new features. First he
30
+ implemented after_worker_exit to aid debugging:
31
+
32
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_exit
33
+ https://bogomips.org/unicorn-public/?q=s:after_worker_exit&d:..20170401&x=t#t
34
+
35
+ And then security-related features to isolate workers. Workers
36
+ may now chroot to drop access to the master filesystem, and the
37
+ new after_worker_ready configuration hook now exists to aid with
38
+ chroot support in workers:
39
+
40
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_ready
41
+ https://bogomips.org/unicorn/Unicorn/Worker.html#method-i-user
42
+ https://bogomips.org/unicorn-public/?q=s:after_worker_ready&d:..20170401&x=t#t
43
+ https://bogomips.org/unicorn-public/?q=s:chroot&d:..20170401&x=t#t
44
+
45
+ Additionally, workers may run in a completely different VM space
46
+ (nullifying preload_app and any CoW savings) with the new
47
+ worker_exec option:
48
+
49
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-worker_exec
50
+ https://bogomips.org/unicorn-public/?q=s:worker_exec&d:..20170401&x=t#t
51
+
52
+ There are also several improvements to FreeBSD and OpenBSD
53
+ support with the addition of these features.
54
+
55
+ shortlog of changes since v5.2.0 (2016-10-31):
56
+
57
+ Dylan Thacker-Smith (1):
58
+ Check for Socket::TCP_INFO constant before trying to get TCP_INFO
59
+
60
+ Eric Wong (30):
61
+ drop rb_str_set_len compatibility replacement
62
+ TUNING: document THP caveat for Linux users
63
+ tee_input: simplify condition for IO#write
64
+ remove response_start_sent
65
+ http_request: freeze constant strings passed IO#write
66
+ Revert "remove response_start_sent"
67
+ t/t0012-reload-empty-config.sh: access ivars directly if needed
68
+ t0011-active-unix-socket.sh: fix race condition in test
69
+ new test for check_client_connection
70
+ revert signature change to HttpServer#process_client
71
+ support "struct tcp_info" on non-Linux and Ruby 2.2+
72
+ unicorn_http: reduce rb_global_variable calls
73
+ oob_gc: rely on opt_aref_with optimization on Ruby 2.2+
74
+ http_request: reduce insn size for check_client_connection
75
+ freebsd: avoid EINVAL when setting accept filter
76
+ test-lib: expr(1) portability fix
77
+ tests: keep disabled tests defined
78
+ test_exec: SO_KEEPALIVE value only needs to be true
79
+ doc: fix links to raindrops project
80
+ http_request: support proposed Raindrops::TCP states on non-Linux
81
+ ISSUES: expand on mail archive info + subscription disclaimer
82
+ test_ccc: use a pipe to synchronize test
83
+ doc: remove private email support address
84
+ input: update documentation and hide internals.
85
+ http_server: initialize @pid ivar
86
+ gemspec: remove olddoc from build dependency
87
+ doc: add version annotations for new features
88
+ unicorn 5.3.0.pre1
89
+ doc: note after_worker_exit is also 5.3.0+
90
+ test_exec: SO_KEEPALIVE value only needs to be true (take #2)
91
+
92
+ Jeremy Evans (7):
93
+ Add after_worker_exit configuration option
94
+ Fix code example in after_worker_exit documentation
95
+ Add support for chroot to Worker#user
96
+ Add after_worker_ready configuration option
97
+ Add worker_exec configuration option
98
+ Don't pass a block for fork when forking workers
99
+ Check for SocketError on first ccc attempt
100
+
101
+ Simon Eskildsen (1):
102
+ check_client_connection: use tcp state on linux
103
+
104
+ === unicorn 5.3.0.pre1 / 2017-03-24 00:25 UTC
105
+
106
+ A largish release with several new features.
107
+
108
+ Simon Eskildsen contributed heavily using TCP_INFO under Linux
109
+ to implement the (now 5 year old) check_client_connection feature:
110
+
111
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-check_client_connection
112
+ https://bogomips.org/unicorn-public/?q=s:check_client_connection&d:..20170324&x=t
113
+
114
+ This also led to FreeBSD and OpenBSD portability improvements in
115
+ one of our dependencies, raindrops:
116
+
117
+ https://bogomips.org/raindrops-public/20170323024829.GA5190@dcvr/T/#u
118
+
119
+ Jeremy Evans contributed several new features. First he
120
+ implemented after_worker_exit to aid debugging:
121
+
122
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_exit
123
+ https://bogomips.org/unicorn-public/?q=s:after_worker_exit&d:..20170324&x=t#t
124
+
125
+ And then security-related features to isolate workers. Workers
126
+ may now chroot to drop access to the master filesystem, and the
127
+ new after_worker_ready configuration hook now exists to aid with
128
+ chroot support in workers:
129
+
130
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-after_worker_ready
131
+ https://bogomips.org/unicorn/Unicorn/Worker.html#method-i-user
132
+ https://bogomips.org/unicorn-public/?q=s:after_worker_ready&d:..20170324&x=t#t
133
+ https://bogomips.org/unicorn-public/?q=s:chroot&d:..20170324&x=t#t
134
+
135
+ Additionally, workers may run in a completely different VM space
136
+ (nullifying preload_app and any CoW savings) with the new
137
+ worker_exec option:
138
+
139
+ https://bogomips.org/unicorn/Unicorn/Configurator.html#method-i-worker_exec
140
+ https://bogomips.org/unicorn-public/?q=s:worker_exec&d:..20170324&x=t#t
141
+
142
+ There are also several improvements to FreeBSD and OpenBSD
143
+ support with the addition of these features.
144
+
145
+ 34 changes since 5.2.0 (2016-10-31):
146
+
147
+ Eric Wong (27):
148
+ drop rb_str_set_len compatibility replacement
149
+ TUNING: document THP caveat for Linux users
150
+ tee_input: simplify condition for IO#write
151
+ remove response_start_sent
152
+ http_request: freeze constant strings passed IO#write
153
+ Revert "remove response_start_sent"
154
+ t/t0012-reload-empty-config.sh: access ivars directly if needed
155
+ t0011-active-unix-socket.sh: fix race condition in test
156
+ new test for check_client_connection
157
+ revert signature change to HttpServer#process_client
158
+ support "struct tcp_info" on non-Linux and Ruby 2.2+
159
+ unicorn_http: reduce rb_global_variable calls
160
+ oob_gc: rely on opt_aref_with optimization on Ruby 2.2+
161
+ http_request: reduce insn size for check_client_connection
162
+ freebsd: avoid EINVAL when setting accept filter
163
+ test-lib: expr(1) portability fix
164
+ tests: keep disabled tests defined
165
+ test_exec: SO_KEEPALIVE value only needs to be true
166
+ doc: fix links to raindrops project
167
+ http_request: support proposed Raindrops::TCP states on non-Linux
168
+ ISSUES: expand on mail archive info + subscription disclaimer
169
+ test_ccc: use a pipe to synchronize test
170
+ doc: remove private email support address
171
+ input: update documentation and hide internals.
172
+ http_server: initialize @pid ivar
173
+ gemspec: remove olddoc from build dependency
174
+ doc: add version annotations for new features
175
+
176
+ Jeremy Evans (6):
177
+ Add after_worker_exit configuration option
178
+ Fix code example in after_worker_exit documentation
179
+ Add support for chroot to Worker#user
180
+ Add after_worker_ready configuration option
181
+ Add worker_exec configuration option
182
+ Don't pass a block for fork when forking workers
183
+
184
+ Simon Eskildsen (1):
185
+ check_client_connection: use tcp state on linux
186
+
187
+ === unicorn 5.2.0 / 2016-10-31 20:00 UTC
188
+
189
+ Most notably, this release allows us to support requests with
190
+ lines delimited by LF-only, as opposed to the standard CRLF
191
+ pair and allowed by RFC 2616 sec 19.3.
192
+
193
+ Thanks to Mishael A Sibiryakov for the explanation and change:
194
+
195
+ https://bogomips.org/unicorn-public/1476954332.1736.156.camel@junki.org/
196
+
197
+ Thanks to Let's Encrypt, the website also moves to HTTPS
198
+ <https://bogomips.org/unicorn/> to improve reader privacy. The
199
+ "unicorn.bogomips.org" subdomain will be retired soon to reduce
200
+ subjectAltName bloat and speed up certificate renewals.
201
+
202
+ There's also the usual round of documentation and example
203
+ updates, too.
204
+
205
+ Eric Wong (7):
206
+ examples/init.sh: update to reduce upgrade raciness
207
+ doc: systemd should only kill master in example
208
+ examples/logrotate.conf: update example for systemd
209
+ doc: update gmane URLs to point to our own archives
210
+ relocate website to https://bogomips.org/unicorn/
211
+ TODO: remove Rack 2.x item
212
+ build: "install-gem" target avoids network
213
+
214
+ Mishael A Sibiryakov (1):
215
+ Add some tolerance (RFC2616 sec. 19.3)
216
+
1
217
  === unicorn 5.1.0 - rack is optional, again / 2016-04-01 00:35 UTC
2
218
 
3
219
  Note: no code changes since 5.1.0.pre1 from January.^WNo, wait,