unicorn 5.2.0 → 5.3.1

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.
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,