unicorn 4.8.0 → 6.1.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.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/.document +0 -1
  3. data/.gitattributes +5 -0
  4. data/.gitignore +2 -2
  5. data/.manifest +17 -21
  6. data/.olddoc.yml +25 -0
  7. data/Application_Timeouts +7 -7
  8. data/CONTRIBUTORS +6 -2
  9. data/DESIGN +2 -4
  10. data/Documentation/.gitignore +1 -3
  11. data/Documentation/unicorn.1 +222 -0
  12. data/Documentation/unicorn_rails.1 +207 -0
  13. data/FAQ +23 -6
  14. data/GIT-VERSION-FILE +1 -1
  15. data/GIT-VERSION-GEN +1 -1
  16. data/GNUmakefile +138 -92
  17. data/HACKING +10 -32
  18. data/ISSUES +80 -19
  19. data/KNOWN_ISSUES +18 -18
  20. data/LATEST +23 -27
  21. data/LICENSE +2 -2
  22. data/Links +24 -22
  23. data/NEWS +823 -0
  24. data/PHILOSOPHY +0 -6
  25. data/README +49 -48
  26. data/Rakefile +0 -44
  27. data/SIGNALS +2 -2
  28. data/Sandbox +11 -10
  29. data/TODO +0 -2
  30. data/TUNING +30 -9
  31. data/archive/.gitignore +3 -0
  32. data/archive/slrnpull.conf +4 -0
  33. data/bin/unicorn +4 -2
  34. data/bin/unicorn_rails +3 -3
  35. data/examples/big_app_gc.rb +1 -1
  36. data/examples/init.sh +36 -8
  37. data/examples/logrotate.conf +17 -2
  38. data/examples/nginx.conf +14 -14
  39. data/examples/unicorn.conf.minimal.rb +2 -2
  40. data/examples/unicorn.conf.rb +14 -6
  41. data/examples/unicorn.socket +11 -0
  42. data/examples/unicorn@.service +40 -0
  43. data/ext/unicorn_http/c_util.h +5 -13
  44. data/ext/unicorn_http/common_field_optimization.h +22 -5
  45. data/ext/unicorn_http/epollexclusive.h +124 -0
  46. data/ext/unicorn_http/ext_help.h +0 -44
  47. data/ext/unicorn_http/extconf.rb +32 -5
  48. data/ext/unicorn_http/global_variables.h +2 -2
  49. data/ext/unicorn_http/httpdate.c +3 -2
  50. data/ext/unicorn_http/unicorn_http.c +926 -638
  51. data/ext/unicorn_http/unicorn_http.rl +159 -170
  52. data/ext/unicorn_http/unicorn_http_common.rl +1 -1
  53. data/lib/unicorn/configurator.rb +110 -46
  54. data/lib/unicorn/const.rb +2 -25
  55. data/lib/unicorn/http_request.rb +110 -31
  56. data/lib/unicorn/http_response.rb +17 -31
  57. data/lib/unicorn/http_server.rb +272 -180
  58. data/lib/unicorn/launcher.rb +1 -1
  59. data/lib/unicorn/oob_gc.rb +16 -6
  60. data/lib/unicorn/select_waiter.rb +6 -0
  61. data/lib/unicorn/socket_helper.rb +58 -78
  62. data/lib/unicorn/stream_input.rb +8 -7
  63. data/lib/unicorn/tee_input.rb +16 -11
  64. data/lib/unicorn/tmpio.rb +10 -6
  65. data/lib/unicorn/util.rb +5 -4
  66. data/lib/unicorn/version.rb +1 -1
  67. data/lib/unicorn/worker.rb +36 -23
  68. data/lib/unicorn.rb +64 -44
  69. data/man/man1/unicorn.1 +124 -122
  70. data/man/man1/unicorn_rails.1 +113 -127
  71. data/t/.gitignore +0 -1
  72. data/t/GNUmakefile +3 -80
  73. data/t/README +4 -4
  74. data/t/t0002-parser-error.sh +3 -3
  75. data/t/t0011-active-unix-socket.sh +1 -1
  76. data/t/t0012-reload-empty-config.sh +2 -1
  77. data/t/t0301-no-default-middleware-ignored-in-config.sh +25 -0
  78. data/t/t0301.ru +13 -0
  79. data/t/test-lib.sh +4 -3
  80. data/test/benchmark/README +14 -4
  81. data/test/benchmark/ddstream.ru +50 -0
  82. data/test/benchmark/readinput.ru +40 -0
  83. data/test/benchmark/uconnect.perl +66 -0
  84. data/test/exec/test_exec.rb +74 -20
  85. data/test/test_helper.rb +42 -33
  86. data/test/unit/test_ccc.rb +91 -0
  87. data/test/unit/test_droplet.rb +1 -1
  88. data/test/unit/test_http_parser.rb +49 -19
  89. data/test/unit/test_http_parser_ng.rb +98 -115
  90. data/test/unit/test_request.rb +11 -11
  91. data/test/unit/test_response.rb +31 -19
  92. data/test/unit/test_server.rb +89 -15
  93. data/test/unit/test_signals.rb +9 -9
  94. data/test/unit/test_socket_helper.rb +16 -12
  95. data/test/unit/test_tee_input.rb +10 -0
  96. data/test/unit/test_upload.rb +10 -15
  97. data/test/unit/test_util.rb +32 -6
  98. data/test/unit/test_waiter.rb +34 -0
  99. data/unicorn.gemspec +28 -23
  100. data/unicorn_1 +1 -0
  101. data/unicorn_rails_1 +1 -0
  102. metadata +68 -134
  103. data/.wrongdoc.yml +0 -10
  104. data/ChangeLog +0 -4861
  105. data/Documentation/GNUmakefile +0 -30
  106. data/Documentation/unicorn.1.txt +0 -178
  107. data/Documentation/unicorn_rails.1.txt +0 -175
  108. data/examples/git.ru +0 -13
  109. data/lib/unicorn/app/exec_cgi.rb +0 -154
  110. data/lib/unicorn/app/inetd.rb +0 -109
  111. data/lib/unicorn/ssl_client.rb +0 -11
  112. data/lib/unicorn/ssl_configurator.rb +0 -104
  113. data/lib/unicorn/ssl_server.rb +0 -42
  114. data/local.mk.sample +0 -59
  115. data/script/isolate_for_tests +0 -32
  116. data/t/hijack.ru +0 -42
  117. data/t/sslgen.sh +0 -71
  118. data/t/t0016-trust-x-forwarded-false.sh +0 -30
  119. data/t/t0017-trust-x-forwarded-true.sh +0 -30
  120. data/t/t0200-rack-hijack.sh +0 -27
  121. data/t/t0600-https-server-basic.sh +0 -48
  122. data/test/unit/test_http_parser_xftrust.rb +0 -38
  123. data/test/unit/test_sni_hostnames.rb +0 -47
data/ChangeLog DELETED
@@ -1,4861 +0,0 @@
1
- ChangeLog from http://bogomips.org/unicorn.git (v1.1.5..v4.8.0)
2
-
3
- commit b3181b132f7f1e5838271f0b20df6fcbba004246
4
- Author: Eric Wong <normalperson@yhbt.net>
5
- Date: Sat Jan 11 06:59:24 2014 +0000
6
-
7
- unicorn 4.8.0 - big internal changes, but compatible
8
-
9
- This release contains fairly major internal workings of master-to-worker
10
- notifications. The master process no longer sends signals to workers
11
- for most tasks. This works around some compatibility issues with some
12
- versions of the "pg" gem (and potentially any other code which may not
13
- handle EINTR properly). One extra benefit is it also helps stray
14
- workers notice a rare, unexpected master death more easily. Workers
15
- continue to (and will always) accept existing signals for compatibility
16
- with tools/scripts which may signal workers.
17
-
18
- PID file are always written early (even on upgrade) again to avoid
19
- breaking strange monitoring setups which use PID files. Keep in mind we
20
- have always discouraged monitoring based on PID files as they are
21
- fragile.
22
-
23
- We now avoid bubbling IOError to the Rack app on premature client
24
- disconnects when streaming the input body. This is usually not a
25
- problem with nginx, but may be on some LAN setups without nginx).
26
-
27
- Thanks to Sam Saffron, Jimmy Soho, Rodrigo Rosenfeld Rosas,
28
- Michael Fischer, and Andrew Hobson for their help with this release.
29
-
30
- Note: the unicorn mailing list will be moved/changed soon due to the
31
- RubyForge shutdown. unicorn will always rely only on Free Software.
32
- There will never be any sign-up requirements nor terms-of-service to
33
- agree to when communicating with us.
34
-
35
- commit 857105657d3b651ea505f5155a1644557ac22f49
36
- Author: Eric Wong <normalperson@yhbt.net>
37
- Date: Sat Jan 11 06:54:05 2014 +0000
38
-
39
- GNUmakefile: add "check" target for running all tests
40
-
41
- "check" rolls off the fingers of users familiar with GNU Automake
42
- more easily. The "test-all" target is preserved for compatibility.
43
-
44
- commit 728b2c70cda7787a80303c6fa2c2530dcb490c90
45
- Author: Eric Wong <normalperson@yhbt.net>
46
- Date: Mon Dec 9 09:50:06 2013 +0000
47
-
48
- unicorn 4.8.0pre1
49
-
50
- Eric Wong (6):
51
- tests: fix SO_REUSEPORT tests for old Linux and non-Linux
52
- stream_input: avoid IO#close on client disconnect
53
- t0300: kill off stray processes in test
54
- always write PID file early for compatibility
55
- doc: clarify SIGNALS and reference init example
56
- rework master-to-worker signaling to use a pipe
57
-
58
- commit 6f6e4115b4bb03e5e7c55def91527799190566f2
59
- Author: Eric Wong <e@80x24.org>
60
- Date: Mon Dec 9 09:20:39 2013 +0000
61
-
62
- rework master-to-worker signaling to use a pipe
63
-
64
- Signaling using normal kill(2) is preserved, but the master now
65
- prefers to signal workers using a pipe rather than kill(2).
66
- Non-graceful signals (:TERM/:KILL) are still sent using kill(2),
67
- as they ask for immediate shutdown.
68
-
69
- This change is necessary to avoid triggering the ubf (unblocking
70
- function) for rb_thread_call_without_gvl (and similar) functions
71
- extensions. Most notably, this fixes compatibility with newer
72
- versions of the 'pg' gem which will cancel a running DB query if
73
- signaled[1].
74
-
75
- This also has the nice side-effect of allowing a premature
76
- master death (assuming preload_app didn't cause the master to
77
- spawn off rogue child daemons).
78
-
79
- Note: users should also refrain from using "killall" if using the
80
- 'pg' gem or something like it.
81
-
82
- Unfortunately, this increases FD usage in the master as the writable
83
- end of the pipe is preserved in the master. This limit the number
84
- of worker processes the master may run to the open file limit of the
85
- master process. Increasing the open file limit of the master
86
- process may be needed. However, the FD use on the workers is
87
- reduced by one as the internal self-pipe is no longer used. Thus,
88
- overall pipe allocation for the kernel remains unchanged.
89
-
90
- [1] - pg is correct to cancel a query, as it cannot know if
91
- the signal was for a) graceful unicorn shutdown or
92
- b) oh-noes-I-started-a-bad-query-ABORT-ABORT-ABORT!!
93
-
94
- commit fa17da92aa4e76d5fd63cb9b74d6884d611ec899
95
- Author: Eric Wong <normalperson@yhbt.net>
96
- Date: Tue Nov 26 18:58:03 2013 +0000
97
-
98
- doc: clarify SIGNALS and reference init example
99
-
100
- "interactive terminal" needed clarification.
101
-
102
- While we're at it, link to the init.sh example since it may
103
- be shared with nginx.
104
-
105
- Reported-by: Rodrigo Rosenfeld Rosas
106
- ref: <5294E9D4.5030608@gmail.com>
107
-
108
- commit 795c3527337ff4f03ae6db08c5df01141565ed96
109
- Author: Eric Wong <normalperson@yhbt.net>
110
- Date: Tue Nov 26 01:55:51 2013 +0000
111
-
112
- always write PID file early for compatibility
113
-
114
- This reduces the window for a non-existent PID for folks who monitor
115
- PIDs (not a great idea anyways). Unfortunately, this change also brings
116
- us back to the case where having a PID later (for other process monitors)
117
- is beneficial but more unicorn releases exist where we write the PID
118
- early.
119
-
120
- Thanks to Jimmy Soho for reporting this issue.
121
- ref: <CAHStS5gFYcPBDxkVizAHrOeDKAkjT69kruFdgaY0CbB+vLbK8Q@mail.gmail.com>
122
-
123
- This partially reverts 7d6ac0c17eb29a00a5b74099dbb3d4d015999f27
124
-
125
- Folks: please monitor your app with HTTP requests rather than checking
126
- processes, a stuck/wedged Ruby VM is still a running one.
127
-
128
- commit aaa75bdcdf782ef7332dba20fc4eb43517e6453c
129
- Author: Eric Wong <normalperson@yhbt.net>
130
- Date: Fri Nov 8 09:33:37 2013 +0000
131
-
132
- t0300: kill off stray processes in test
133
-
134
- We shouldn't leave processes running after the test.
135
-
136
- commit f4005d5efc608e7d75371f0d0527041facd33f89
137
- Author: Eric Wong <normalperson@yhbt.net>
138
- Date: Thu Nov 7 20:10:01 2013 +0000
139
-
140
- stream_input: avoid IO#close on client disconnect
141
-
142
- This can avoid IOError from being seen by the application, and also
143
- reduces points where IO#close may be called. This is a good thing
144
- if we eventually port this code into a low-level server like
145
- cmogstored where per-client memory space is defined by FD number of
146
- a client.
147
-
148
- Reported-by: Andrew Hobson <ahobson@gmail.com>
149
-
150
- commit a1aa5c97289df09a90831c4d9bf6e22ac351bdd8
151
- Author: Eric Wong <normalperson@yhbt.net>
152
- Date: Mon Nov 4 18:28:46 2013 +0000
153
-
154
- tests: fix SO_REUSEPORT tests for old Linux and non-Linux
155
-
156
- On BSD-derived platforms the getsockopt true value may be any
157
- (>= 0) value, not just one as it is on Linux.
158
-
159
- Additionally, SO_REUSEPORT is only supported since Linux 3.9, so
160
- folks on older kernels may not have it available. We still define it
161
- for Linux since kernel upgrades are usually more common than glibc
162
- upgrades.
163
-
164
- Note: we will still raise an exception at runtime if a user
165
- explicitly requests :reuseport in their config and runs an
166
- older Linux kernel.
167
-
168
- Reported-by: Andrew Hobson <ahobson@gmail.com>
169
-
170
- commit 9c8747d290dfc7ab4bc11c4f88b3c284cc5ba949
171
- Author: Eric Wong <normalperson@yhbt.net>
172
- Date: Mon Nov 4 06:28:56 2013 +0000
173
-
174
- unicorn 4.7.0 - minor updates, license tweak
175
-
176
- * support SO_REUSEPORT on new listeners (:reuseport)
177
-
178
- This allows users to start an independent instance of unicorn on
179
- a the same port as a running unicorn (as long as both instances
180
- use :reuseport).
181
-
182
- ref: https://lwn.net/Articles/542629/
183
-
184
- * unicorn is now GPLv2-or-later and Ruby 1.8-licensed
185
- (instead of GPLv2-only, GPLv3-only, and Ruby 1.8-licensed)
186
-
187
- This changes nothing at the moment. Once the FSF publishes the next
188
- version of the GPL, users may choose the newer GPL version without the
189
- unicorn BDFL approving it. Two years ago when I got permission to add
190
- GPLv3 to the license options, I also got permission from all past
191
- contributors to approve future versions of the GPL. So now I'm
192
- approving all future versions of the GPL for use with unicorn.
193
-
194
- Reasoning below:
195
-
196
- In case the GPLv4 arrives and I am not alive to approve/review it,
197
- the lesser of evils is have give blanket approval of all future GPL
198
- versions (as published by the FSF). The worse evil is to be stuck
199
- with a license which cannot guarantee the Free-ness of this project
200
- in the future.
201
-
202
- This unfortunately means the FSF can theoretically come out with
203
- license terms I do not agree with, but the GPLv2 and GPLv3 will
204
- always be an option to all users.
205
-
206
- Note: we currently prefer GPLv3
207
-
208
- Two improvements thanks to Ernest W. Durbin III:
209
-
210
- * USR2 redirects fixed for Ruby 1.8.6 (broken since 4.1.0)
211
- * unicorn(1) and unicorn_rails(1) enforces valid integer for -p/--port
212
-
213
- A few more odd, minor tweaks and fixes:
214
-
215
- * attempt to rename PID file when possible (on USR2)
216
- * workaround reopen atomicity issues for stdio vs non-stdio
217
- * improve handling of client-triggerable socket errors
218
-
219
- commit d5870ccc714a4bb442a46aedd4c68c547e8e56f4
220
- Author: Eric Wong <e@80x24.org>
221
- Date: Fri Nov 1 20:02:47 2013 +0000
222
-
223
- bin/*: enforce -p/--port argument to be a valid integer
224
-
225
- Users may confuse '-p' with the (to-be-deprecated) '-P/--pid'
226
- option, leading to surprising behavior if a pathname is passed as a
227
- port, because String#to_i would convert it to zero, causing:
228
-
229
- TCPServer.new(host, port = 0)
230
-
231
- to bind to a random, unused port.
232
-
233
- commit 7e9e4c740aba24096f768f578779dc1053cb8b70
234
- Author: Ernest W. Durbin III <ewdurbin@gmail.com>
235
- Date: Fri Nov 1 10:12:33 2013 -0400
236
-
237
- construct listener_fds Hash in 1.8.6 compatible way
238
-
239
- This renables the ability for Ruby 1.8.6 environments to perform reexecs
240
-
241
- [ew: clarified this is for 1.8.6,
242
- favor literal {} over Hash.new,
243
- tweaked LISTENERS.map => LISTENERS.each, thanks to Hleb Valoshka
244
- ]
245
-
246
- Signed-off-by: Eric Wong <normalperson@yhbt.net>
247
-
248
- commit 03580a19afe5ce76323a7366b92243a94d445de1
249
- Author: Eric Wong <normalperson@yhbt.net>
250
- Date: Tue Oct 29 00:36:49 2013 +0000
251
-
252
- configurator: validate :reuseport for boolean-ess
253
-
254
- In case we (and Linux) supports other values in the future,
255
- we can update it then. Until now, ensure users only set
256
- true or false for this option.
257
-
258
- commit f078eb93d343bb27cf5c6dc84efbe7c598d572fb
259
- Author: Eric Wong <normalperson@yhbt.net>
260
- Date: Sat Oct 26 07:05:10 2013 +0000
261
-
262
- license: allow all future versions of the GNU GPL
263
-
264
- There is currently no GPLv4, so this change has no effect at the
265
- moment.
266
-
267
- In case the GPLv4 arrives and I am not alive to approve/review it,
268
- the lesser of evils is have give blanket approval of all future GPL
269
- versions (as published by the FSF). The worse evil is to be stuck
270
- with a license which cannot guarantee the Free-ness of this project
271
- in the future.
272
-
273
- This unfortunately means the FSF can theoretically come out with
274
- license terms I do not agree with, but the GPLv2 and GPLv3 will
275
- always be an option to all users.
276
-
277
- commit d9c0db79e9eef9839aaada1be1105b3ff8ceae5c
278
- Author: Eric Wong <e@80x24.org>
279
- Date: Fri Oct 25 19:56:47 2013 +0000
280
-
281
- http_server: fixup comments for PID file renaming
282
-
283
- Thanks to Hongli Lai for noticing my typo. While we're at it, finish up
284
- a halfway-written comment for the EXDEV case
285
-
286
- commit e025cd99beee500f175a3bcc302a1307b39ffb77
287
- Author: Eric Wong <e@80x24.org>
288
- Date: Fri Oct 25 19:45:15 2013 +0000
289
-
290
- avoid IO_PURGATORY on Ruby 1.9+
291
-
292
- Ruby 1.9 and later includes IO#autoclose=, so we can use it
293
- and prevent some dead IO objects from hanging around.
294
-
295
- commit 7c125886b5862bf20711bae22e6697ad46141434
296
- Author: Eric Wong <e@80x24.org>
297
- Date: Fri Oct 25 19:27:05 2013 +0000
298
-
299
- support SO_REUSEPORT on new listeners (:reuseport)
300
-
301
- This allows users to start an independent instance of unicorn on
302
- a the same port as a running unicorn (as long as both instances
303
- use :reuseport).
304
-
305
- ref: https://lwn.net/Articles/542629/
306
-
307
- commit 1dc099228ee0f59c13385a3e7346a2cb37d85153
308
- Author: Eric Wong <e@80x24.org>
309
- Date: Fri Oct 25 19:54:39 2013 +0000
310
-
311
- tests: limit oobgc check to accepted sockets
312
-
313
- Otherwise these tests fail if we start using IO#autoclose=true
314
- on Ruby 1.9 (and also if we use IPv6 sockets for tests).
315
-
316
- commit 7d6ac0c17eb29a00a5b74099dbb3d4d015999f27
317
- Author: Eric Wong <e@80x24.org>
318
- Date: Thu Oct 24 22:11:17 2013 +0000
319
-
320
- attempt to rename PID file when possible
321
-
322
- This will preserve mtime on successful renames for comparisions.
323
- While we're at it, avoid writing the new PID until the listeners are
324
- inherited successfully. This can be useful to avoid accidentally
325
- clobbering a good PID if binding the listener or building the app
326
- (preload_app==true) fails
327
-
328
- commit d90eebe1e50e2bdb9632b64591e4b84cbc0049a1
329
- Author: Eric Wong <e@80x24.org>
330
- Date: Sun Oct 20 04:29:55 2013 +0000
331
-
332
- workaround reopen atomicity issues for stdio vs non-stdio
333
-
334
- In multithreaded apps, we must use dup2/dup3 with a temporary
335
- descriptor to reopen log files atomically. This is the only way
336
- to protect all concurrent userspace access to a file when reopening.
337
-
338
- ref: http://bugs.ruby-lang.org/issues/9036
339
- ref: yahns commit bcb10abe53cfb1d6a8ef7daef59eb10ced397c8a
340
-
341
- commit a9dfd48f9668d0a6e04cf009cea0c4ede962144d
342
- Author: Eric Wong <normalperson@yhbt.net>
343
- Date: Mon Sep 30 18:17:20 2013 +0000
344
-
345
- Rakefile: kill raa_update task
346
-
347
- RAA is dead.
348
-
349
- commit 0c2213dfe23f177c91d76c0c70aec5a01f5a7f55
350
- Author: Eric Wong <normalperson@yhbt.net>
351
- Date: Wed Sep 11 00:49:35 2013 +0000
352
-
353
- tests: upgrade several gems (rack, kgio, raindrops)
354
-
355
- All tests seem to pass.
356
-
357
- commit 849348f82830326e7778e50a5a7f2efeeb4460e5
358
- Author: Eric Wong <normalperson@yhbt.net>
359
- Date: Wed Sep 4 19:21:57 2013 +0000
360
-
361
- Sandbox: document SIGUSR2 + bundler issue with 2.0.0
362
-
363
- Thanks to Eric Chapweske for the heads up.
364
-
365
- ref: http://mid.gmane.org/loom.20130904T205308-432@post.gmane.org
366
-
367
- commit 9af083d7f6b97c0f5ebbdd9a42b58478a6f874b7
368
- Author: Eric Wong <normalperson@yhbt.net>
369
- Date: Fri Aug 16 22:08:11 2013 +0000
370
-
371
- test_util: fix encoding test for Ruby trunk (2.1.0dev)
372
-
373
- As of r40610 in ruby trunk, internal encoding is ignored if
374
- external coding is ASCII-8BIT (binary)
375
-
376
- ref: r40610 http://svn.ruby-lang.org/repos/ruby/trunk
377
-
378
- commit 24b9f66dcdda44378b4053645333ce9ce336b413
379
- Author: Eric Wong <normalperson@yhbt.net>
380
- Date: Sat Aug 17 01:09:46 2013 +0000
381
-
382
- http_server: improve handling of client-triggerable socket errors
383
-
384
- We do not attempt to write HTTP responses for socket errors if
385
- clients disconnect from us unexpectedly.
386
-
387
- Additionally, we do not hide backtraces EINVAL/EBADF errors, since
388
- they are indicative of real bugs which must be fixed.
389
-
390
- We do continue to hide hide EOF, ECONNRESET, ENOTCONN, and EPIPE
391
- because clients (even "friendly") ones will break connections due to
392
- client crashes or network failure (which is common for me :P), and
393
- the backtraces from those will cause excessive logging and even
394
- become a DoS vector.
395
-
396
- commit 2f5174d4ca9764313d6be4c092e9e6c2e4f9d1e1
397
- Author: Eric Wong <normalperson@yhbt.net>
398
- Date: Fri Jun 21 08:00:09 2013 +0000
399
-
400
- unicorn 4.6.3 - fix --no-default-middleware option
401
-
402
- Thanks to Micah Chalmer for this fix. There are also minor
403
- documentation updates and internal cleanups.
404
-
405
- commit 56b0c0c3d26304beeef54d8fe95bead97424f147
406
- Author: Micah Chalmer <micah@micahchalmer.net>
407
- Date: Thu Jun 6 23:03:36 2013 -0400
408
-
409
- Make -N/--no-default-middleware option work
410
-
411
- This fixes the -N (a.k.a. --no-defaut-middleware) option, which
412
- was not working. The problem was that Unicorn::Configurator::RACKUP
413
- is cleared before the lambda returned by Unicorn.builder is run,
414
- which means that checking whether the :no_default_middleware option
415
- was set from the lambda could not detect anything. This patch copies
416
- it to a local variable that won't get clobbered, restoring the feature.
417
-
418
- [ew: squashed test commit into the fix, whitespace fixes]
419
-
420
- Signed-off-by: Eric Wong <normalperson@yhbt.net>
421
-
422
- commit 421f5a8573484b1203fceebc65aee5d011d63c63
423
- Author: Eric Wong <normalperson@yhbt.net>
424
- Date: Wed May 8 22:57:23 2013 +0000
425
-
426
- HttpParser#next? becomes response_start_sent-aware
427
-
428
- This could allow servers with persistent connection support[1]
429
- to support our check_client_connection in the future.
430
-
431
- [1] - Rainbows!/zbatery, possibly others
432
-
433
- commit c3c79fcdb71c599e426f9ce83d45dc8cc3d9cd3c
434
- Author: Eric Wong <normalperson@yhbt.net>
435
- Date: Fri May 3 22:08:15 2013 +0000
436
-
437
- test_signals: increase delay between Process.kill
438
-
439
- Otherwise, the signalled process may take too long to react to
440
- and process all the signals on machines with few CPUs.
441
-
442
- commit 9f846a26d24d7bfaf17cacad16cfbae7eec39c74
443
- Author: Eric Wong <normalperson@yhbt.net>
444
- Date: Fri Apr 5 21:38:17 2013 +0000
445
-
446
- doc: update documentation for systemd + PrivateTmp users
447
-
448
- The PrivateTmp feature of systemd breaks the usage of /tmp for the
449
- shared Unix domain socket between nginx and unicorn, so discourage the
450
- use of /tmp in that case.
451
-
452
- While we're at it, use consistent paths for everything and use an
453
- obviously intended-for-user-customization "/path/to" prefix instead
454
- of "/tmp"
455
-
456
- ML-Ref: CAKLVLx_t+9zWMhquMWDfStrxS7xrNoGmN0ZDsjSCUE=VxU+oyQ@mail.gmail.com
457
- Reported-by: David Wilkins <dwilkins@conecuh.com>
458
-
459
- commit 04bcc147d0081433069235a87f779055fa7b6f3c
460
- Author: Eric Wong <normalperson@yhbt.net>
461
- Date: Tue Feb 26 02:57:24 2013 +0000
462
-
463
- unicorn 4.6.2 - HTTP parser fix for Rainbows!
464
-
465
- This release fixes a bug in Unicorn::HttpParser#filter_body
466
- which affected some configurations of Rainbows! There is
467
- also a minor size reduction in the DSO.
468
-
469
- commit f7ee06592d7709e96f64efb5e7a9485b54415c9d
470
- Author: Eric Wong <normalperson@yhbt.net>
471
- Date: Tue Feb 26 02:52:37 2013 +0000
472
-
473
- http: avoid frozen string bug in filter_body
474
-
475
- Our rb_str_modify() became no-ops due to incomplete reverts
476
- of workarounds for old Rubinius, causing rb_str_set_len to
477
- fail with: can't set length of shared string (RuntimeError)
478
-
479
- This bug was introduced due to improper workarounds for old
480
- versions of Rubinius in 2009 and 2010:
481
-
482
- commit 5e8979ad38efdc4de3a69cc53aea33710d478406
483
- ("http: cleanups for latest Rubinius")
484
- commit f37c23704cb73d57e9e478295d1641df1d9104c7
485
- ("http: no-op rb_str_modify() for Rubies without it")
486
-
487
- commit 3ef703179891fa3f6f9d03f2ae58d289c691738e
488
- Author: Eric Wong <normalperson@yhbt.net>
489
- Date: Tue Feb 19 11:36:18 2013 +0000
490
-
491
- httpdate: minor size reduction in DSO
492
-
493
- Extra pointers waste space in the DSO. Normally I wouldn't
494
- care, but the string lengths are identical and this code
495
- already made it into another project in this form.
496
-
497
- size(1) output:
498
-
499
- text data bss dec hex filename
500
- before: 42881 2040 336 45257 b0c9 unicorn_http.so
501
- after: 42499 1888 336 44723 aeb3 unicorn_http.so
502
-
503
- ref: http://www.akkadia.org/drepper/dsohowto.pdf
504
-
505
- commit f8829e69e28bb93dbbf9a220cdff163a6ba182d5
506
- Author: Eric Wong <normalperson@yhbt.net>
507
- Date: Thu Feb 21 08:36:35 2013 +0000
508
-
509
- unicorn 4.6.1 - minor cleanups
510
-
511
- Unicorn::Const::UNICORN_VERSION is now auto-generated from
512
- GIT-VERSION-GEN and always correct. Minor cleanups for
513
- hijacking.
514
-
515
- commit 15c23106ffc9b7a03fdc2353f41c239f89ac9822
516
- Author: Eric Wong <normalperson@yhbt.net>
517
- Date: Sat Feb 9 01:13:17 2013 +0000
518
-
519
- http_request: drop conditional assignment for hijack
520
-
521
- As far as I can tell, this was never necessary.
522
-
523
- commit ed28a361d234847dca550e839f22f0cc779f6ce0
524
- Author: Eric Wong <normalperson@yhbt.net>
525
- Date: Fri Feb 8 22:48:03 2013 +0000
526
-
527
- http_request: remove FIXME for rack.version clarification
528
-
529
- commit a9474624a148fe58e0944664190b259787dcf51e in rack.git
530
-
531
- commit cb0623f25db7f06660e563e8e746bfe0ae5ba9c5
532
- Author: Eric Wong <normalperson@yhbt.net>
533
- Date: Fri Feb 8 18:50:07 2013 +0000
534
-
535
- auto-generate Unicorn::Const::UNICORN_VERSION
536
-
537
- This DRYs out our code and prevents snafus like the 4.6.0
538
- release where UNICORN_VERSION stayed at 4.5.0
539
-
540
- Reported-by: Maurizio De Santis <m.desantis@morganspa.com>
541
-
542
- commit 1b3352ec9b5c9eeb58cf330d6b9ce8753af4ec16
543
- Author: Eric Wong <normalperson@yhbt.net>
544
- Date: Wed Feb 6 11:20:57 2013 +0000
545
-
546
- unicorn 4.6.0 - hijacking support
547
-
548
- This pre-release adds hijacking support for Rack 1.5 users.
549
- See Rack documentation for more information about hijacking.
550
- There is also a new --no-default-middleware/-N option
551
- for the `unicorn' command to ignore RACK_ENV within unicorn
552
- thanks to Lin Jen-Shin.
553
-
554
- There are only documentation and test-portability updates
555
- since 4.6.0pre1, no code changes.
556
-
557
- commit 9cd8554749a9f120b010c93933d09d2dd27b1280
558
- Author: Eric Wong <normalperson@yhbt.net>
559
- Date: Mon Feb 4 12:39:09 2013 +0000
560
-
561
- tests: "wc -l" portability for *BSDs
562
-
563
- On FreeBSD 9.0, "wc -l" emits leading whitespace, so
564
- filter it through tr -d '[:space:]' to eliminate it.
565
-
566
- commit 2a2163594ea2b515e98fbe9f909bcf90e4c35fe8
567
- Author: Eric Wong <normalperson@yhbt.net>
568
- Date: Mon Feb 4 12:29:00 2013 +0000
569
-
570
- tests: "wc -c" portability for *BSDs
571
-
572
- On FreeBSD 9.0, "wc -c" emits leading whitespace, so
573
- filter it through tr -d '[:space:]' to eliminate it.
574
-
575
- This is commit 8a6117a22a7d01eeb5adc63d3152acf435cd3176
576
- in rainbows.git
577
-
578
- commit 85223902e8229bd460ce0b4ad126f42b1db42a46
579
- Author: Eric Wong <normalperson@yhbt.net>
580
- Date: Mon Feb 4 10:36:18 2013 +0000
581
-
582
- tests: replace non-portable "date +%s" with ruby equivalent
583
-
584
- "date +%s" is not in POSIX (it is in GNU, and at least FreeBSD
585
- 9.0, possibly earlier). The Ruby equivalent should be
586
- sufficiently portable between different Ruby versions.
587
-
588
- This change was automated via:
589
- perl -i -p -e 's/date \+%s/unix_time/' t/*.sh
590
-
591
- This is commit 0ba6fc3c30b9cf530faf7fcf5ce7be519ec13fe7
592
- in rainbows.git
593
-
594
- commit a09a622b4988b5eee819487c96a4563e71f753f7
595
- Author: Eric Wong <normalperson@yhbt.net>
596
- Date: Mon Feb 4 10:30:25 2013 +0000
597
-
598
- tests: remove utee
599
-
600
- POSIX already stipulates tee(1) must be unbuffered. I think my
601
- decision to use utee was due to my being misled by a bug in
602
- older curl where -N did not work as advertised (but --no-buffer
603
- did).
604
-
605
- N.B. we don't use tee in unicorn tests, this just matches
606
- commit cbff7b0892148b037581541184364e0e91d2a138 in rainbows
607
-
608
- commit 64765b95df06256d39daefdeebde97c874770131
609
- Author: Eric Wong <normalperson@yhbt.net>
610
- Date: Tue Jan 29 21:19:22 2013 +0000
611
-
612
- manpage: update middleware-related documentation
613
-
614
- -N/--no-default-middleware needs a corresponding manpage entry.
615
-
616
- Additionally, the Rack::Chunked/ContentLength middleware comment
617
- is out-of-date as of unicorn v4.1.0
618
-
619
- commit db919d18e01f6b2339915cbd057fba9dc040988b
620
- Author: Eric Wong <normalperson@yhbt.net>
621
- Date: Tue Jan 29 21:02:55 2013 +0000
622
-
623
- unicorn 4.6.0pre1 - hijacking support
624
-
625
- This pre-release adds hijacking support for Rack 1.5 users.
626
- See Rack documentation for more information about hijacking.
627
- There is also a new --no-default-middleware/-N option
628
- for the `unicorn' command to ignore RACK_ENV within unicorn.
629
-
630
- commit b73299a053b305098d5d68634fa928ec71aa4eac
631
- Merge: c43113e fedb5e5
632
- Author: Eric Wong <normalperson@yhbt.net>
633
- Date: Tue Jan 29 21:00:32 2013 +0000
634
-
635
- Merge branch 'hijack'
636
-
637
- * hijack:
638
- ignore normal Rack response at request-time hijack
639
- support for Rack hijack in request and response
640
-
641
- commit c43113e350aabb78c30ba64884328458db85c901
642
- Author: Lin Jen-Shin <godfat@godfat.org>
643
- Date: Tue Jan 29 11:21:19 2013 +0800
644
-
645
- Add -N or --no-default-middleware option.
646
-
647
- This would prevent Unicorn from adding default middleware,
648
- as if RACK_ENV were always none. (not development nor deployment)
649
-
650
- This should also be applied to `rainbows' and `zbatery' as well.
651
-
652
- One of the reasons to add this is to avoid conflicting
653
- RAILS_ENV and RACK_ENV. It would be helpful in the case
654
- where a Rails application and Rack application are composed
655
- together, while we want Rails app runs under development
656
- and Rack app runs under none (if we don't want those default
657
- middleware), and we don't really want to make RAILS_ENV
658
- set to development and RACK_ENV to none because it might be
659
- confusing. Note that Rails would also look into RACK_ENV.
660
-
661
- Another reason for this is that only `rackup' would be
662
- inserting those default middleware. Both `thin' and `puma'
663
- would not do this, nor does Rack::Handler.get.run which is
664
- used in Sinatra.
665
-
666
- So using this option would make it work differently from
667
- `rackup' but somehow more similar to `thin' or `puma'.
668
-
669
- Discussion thread on the mailing list:
670
- http://rubyforge.org/pipermail/mongrel-unicorn/2013-January/001675.html
671
-
672
- Signed-off-by: Eric Wong <normalperson@yhbt.net>
673
-
674
- commit fdd7c851e5664c1e629a904e21d147a9dfc950d7
675
- Author: Eric Wong <normalperson@yhbt.net>
676
- Date: Tue Jan 29 03:56:16 2013 +0000
677
-
678
- test_exec: do not count '\n' as column width
679
-
680
- This off-by-one error was incorrectly rejecting a line which
681
- would've been readable without wrapping on an 80-column terminal.
682
-
683
- commit 89071a412e161a3ea24a9574611932a1f0acc8c7
684
- Author: Eric Wong <normalperson@yhbt.net>
685
- Date: Tue Jan 29 03:37:20 2013 +0000
686
-
687
- tests: upgrade to rack 1.5.1
688
-
689
- This fixes a Rack::Lint regression discovered in t0005.
690
-
691
- commit fedb5e50829e6dfad30ca18ea525c812eccbec70
692
- Author: Eric Wong <normalperson@yhbt.net>
693
- Date: Tue Jan 22 23:52:14 2013 +0000
694
-
695
- ignore normal Rack response at request-time hijack
696
-
697
- Once a connection is hijacked, we ignore it completely and leave
698
- the connection at the mercy of the application.
699
-
700
- commit 705cf5fcf8ccb37deef5d2b922d6d78d34765c5b
701
- Author: Eric Wong <normalperson@yhbt.net>
702
- Date: Tue Jan 22 11:04:52 2013 +0000
703
-
704
- support for Rack hijack in request and response
705
-
706
- Rack 1.5.0 (protocol version [1,2]) adds support for
707
- hijacking the client socket (removing it from the control
708
- of unicorn (or any other Rack webserver)).
709
-
710
- Tested with rack 1.5.0.
711
-
712
- commit faf1edc74c9bb35cf4e131d794c1923bf124aa1c
713
- Author: Eric Wong <normalperson@yhbt.net>
714
- Date: Tue Jan 22 09:48:54 2013 +0000
715
-
716
- tests: version bumps for rack, kgio, and raindrops
717
-
718
- Ensure the latest versions work in tests.
719
-
720
- commit 1bcc4ee4400152fe73a20dedf4f5823475393112
721
- Author: Eric Wong <normalperson@yhbt.net>
722
- Date: Mon Jan 7 20:10:43 2013 +0000
723
-
724
- tests: bump tests to use rack 1.4.3
725
-
726
- It's the latest and greatest! \o/
727
-
728
- commit c4e5b936e5b6b535d56eff30c509a063d77710e1
729
- Author: Eric Wong <normalperson@yhbt.net>
730
- Date: Fri Dec 7 22:15:56 2012 +0000
731
-
732
- unicorn 4.5.0 - check_client_connection option
733
-
734
- The new check_client_connection option allows unicorn to detect
735
- most disconnected local clients before potentially expensive
736
- application processing begins.
737
-
738
- This feature is useful for applications experiencing spikes of
739
- traffic leading to undesirable queue times, as clients will
740
- disconnect (and perhaps even retry, compounding the problem)
741
- before unicorn can even start processing the request.
742
-
743
- To enable this feature, add the following line to a unicorn
744
- config file:
745
-
746
- check_client_connection true
747
-
748
- This feature only works when nginx (or any other HTTP/1.0+
749
- client) is on the same machine as unicorn.
750
-
751
- A huge thanks to Tom Burns for implementing and testing this
752
- change in production with real traffic (including mitigating
753
- an unexpected DoS attack).
754
-
755
- ref: http://mid.gmane.org/CAK4qKG3rkfVYLyeqEqQyuNEh_nZ8yw0X_cwTxJfJ+TOU+y8F+w@mail.gmail.com
756
-
757
- This release fixes broken Rainbows! compatibility in 4.5.0pre1.
758
-
759
- commit bc4c412f15a05a37ec40f374239efa83d2dbdb1e
760
- Author: Peter Marsh <pete@modeltwozero.com>
761
- Date: Mon Dec 3 16:37:30 2012 +0000
762
-
763
- gemspec: enable licenses metadata attribute
764
-
765
- This enables compatibility with metadata scanners such as
766
- LicenseFinder[1].
767
-
768
- The previously commented-out accessor was commented out
769
- in September 2009 when ancient RubyGems were more prevalent.
770
- By now (December 2012), those ancient versions of RubyGems
771
- are unlikely to be around.
772
-
773
- [1] https://github.com/pivotal/LicenseFinder
774
-
775
- [ew: rewritten commit message]
776
-
777
- Signed-off-by: Eric Wong <normalperson@yhbt.net>
778
-
779
- commit fd0192c134acd1d5037a9aa45ad7b5375c28c29c
780
- Author: Eric Wong <normalperson@yhbt.net>
781
- Date: Mon Dec 3 21:19:44 2012 +0000
782
-
783
- README: clarify license and copyright
784
-
785
- Since Ruby 1.9.3, (Matz) Ruby is licensed under a 2-clause BSDL.
786
- Thus we need to clarify we inherited the license terms from
787
- Ruby 1.8 to prevent misunderstanding.
788
-
789
- (The Ruby license change cannot alter the license of other
790
- projects automatically)
791
-
792
- Since we added the GPLv3 as an additional license in 2011,
793
- the license terms of unicorn no longer matches Mongrel 1.1.5.
794
-
795
- This is NOT a change to the unicorn license at all, just a
796
- wording clarification.
797
-
798
- commit 69e6a793d34ff71da7c8ca59962d627e2fb508d8
799
- Author: Eric Wong <normalperson@yhbt.net>
800
- Date: Tue Dec 4 02:35:26 2012 +0000
801
-
802
- fix const error responses for Rainbows!
803
-
804
- Rainbows! relies on the ERROR_XXX_RESPONSE constants of unicorn
805
- 4.x. Changing the constants in unicorn 4.x will break existing
806
- versions of Rainbows!, so remove the dependency on the constants
807
- and generate the error response dynamically.
808
-
809
- Unlike Mongrel, unicorn is unlikely to see malicious traffic and
810
- thus unlikely to benefit from making error messages constant.
811
-
812
- For unicorn 5.x, we will drop these constants entirely.
813
-
814
- (Rainbows! most likely cannot support check_client_connection
815
- consistently across all concurrency models since some of them
816
- pessimistically buffer all writes in userspace. However, the
817
- extra concurrency of Rainbows! makes it less likely to be
818
- overloaded than unicorn, so this feature is likely less useful
819
- for Rainbows!)
820
-
821
- commit 32333a4d233f73f6fc9d904301f97a4406c446fa
822
- Author: Eric Wong <normalperson@yhbt.net>
823
- Date: Thu Nov 29 23:00:45 2012 +0000
824
-
825
- unicorn 4.5.0pre1 - check_client_connection option
826
-
827
- The new check_client_connection option allows unicorn to detect
828
- most disconnected clients before potentially expensive
829
- application processing begins.
830
-
831
- This feature is useful for applications experiencing spikes of
832
- traffic leading to undesirable queue times, as clients will
833
- disconnect (and perhaps even retry, compounding the problem)
834
- before unicorn can even start processing the request.
835
-
836
- To enable this feature, add the following line to a unicorn
837
- config file:
838
-
839
- check_client_connection true
840
-
841
- A huge thanks to Tom Burns for implementing and testing this
842
- change in production with real traffic (including mitigating
843
- an unexpected DoS attack).
844
-
845
- commit 90db7b14eab449da8cef4ef22ab76ae00f654361
846
- Author: Eric Wong <normalperson@yhbt.net>
847
- Date: Thu Nov 29 21:48:31 2012 +0000
848
-
849
- check_client_connection: document local-only requirement
850
-
851
- In my testing, only dropped clients over Unix domain sockets or
852
- loopback TCP were detected with this option. Since many
853
- nginx+unicorn combinations run on the same host, this is not a
854
- problem.
855
-
856
- Furthermore, tcp_nodelay:true appears to work over loopback,
857
- so remove the requirement for tcp_nodelay:false.
858
-
859
- commit 5c700fc2cf398848ddcf71a2aa3f0f2a6563e87b
860
- Author: Tom Burns <tom.burns@jadedpixel.com>
861
- Date: Tue Oct 30 16:22:21 2012 -0400
862
-
863
- Begin writing HTTP request headers early to detect disconnected clients
864
-
865
- This patch checks incoming connections and avoids calling the application
866
- if the connection has been closed.
867
-
868
- It works by sending the beginning of the HTTP response before calling
869
- the application to see if the socket can successfully be written to.
870
-
871
- By enabling this feature users can avoid wasting application rendering
872
- time only to find the connection is closed when attempting to write, and
873
- throwing out the result.
874
-
875
- When a client disconnects while being queued or processed, Nginx will log
876
- HTTP response 499 but the application will log a 200.
877
-
878
- Enabling this feature will minimize the time window during which the problem
879
- can arise.
880
-
881
- The feature is disabled by default and can be enabled by adding
882
- 'check_client_connection true' to the unicorn config.
883
-
884
- [ew: After testing this change, Tom Burns wrote:
885
-
886
- So we just finished the US Black Friday / Cyber Monday weekend running
887
- unicorn forked with the last version of the patch I had sent you. It
888
- worked splendidly and helped us handle huge flash sales without
889
- increased response time over the weekend.
890
-
891
- Whereas in previous flash traffic scenarios we would see the number of
892
- HTTP 499 responses grow past the number of real HTTP 200 responses,
893
- over the weekend we saw no growth in 499s during flash sales.
894
-
895
- Unexpectedly the patch also helped us ward off a DoS attack where the
896
- attackers were disconnecting immediately after making a request.
897
-
898
- ref: <CAK4qKG3rkfVYLyeqEqQyuNEh_nZ8yw0X_cwTxJfJ+TOU+y8F+w@mail.gmail.com>
899
- ]
900
-
901
- Signed-off-by: Eric Wong <normalperson@yhbt.net>
902
-
903
- commit f4af812a28b03508c96853739aea53f7a6714abf
904
- Author: Eric Wong <normalperson@yhbt.net>
905
- Date: Tue Nov 13 20:22:13 2012 +0000
906
-
907
- tests: remove assert_nothing_raised (part 2)
908
-
909
- assert_nothing_raised ends up hiding errors and backtraces,
910
- making things harder to debug. Since Test::Unit already
911
- fails on uncaught exceptions, there is no need to assert
912
- on the lack of exceptions for a successful test run.
913
-
914
- This is a followup to commit 5acf5522295c947d3118926d1a1077007f615de9
915
-
916
- commit 4bd0dbdf2d27672dc941746e06b647ea26fe63ee
917
- Author: Eric Wong <normalperson@yhbt.net>
918
- Date: Thu Oct 11 09:16:51 2012 +0000
919
-
920
- Rakefile: fm_update task updated for HTTPS
921
-
922
- Freecode.com now requires HTTPS.
923
-
924
- commit f0a31e43676f59762d5bf53707cd8cc21fed0727
925
- Author: Eric Wong <normalperson@yhbt.net>
926
- Date: Wed Oct 10 21:33:46 2012 +0000
927
-
928
- unicorn 4.4.0 - minor updates
929
-
930
- Non-regular files are no longer reopened on SIGUSR1. This
931
- allows users to specify FIFOs as log destinations.
932
-
933
- TCP_NOPUSH/TCP_CORK is no longer set/unset by default. Use
934
- :tcp_nopush explicitly with the "listen" directive if you wish
935
- to enable TCP_NOPUSH/TCP_CORK.
936
-
937
- Listen sockets are now bound _after_ loading the application for
938
- preload_app(true) users. This prevents load balancers from
939
- sending traffic to an application server while the application
940
- is still loading.
941
-
942
- There are also minor test suite cleanups.
943
-
944
- commit 032791b9a367f67febbe7534f6ea4cac127e7897
945
- Author: Eric Wong <normalperson@yhbt.net>
946
- Date: Mon Oct 1 21:18:02 2012 -0700
947
-
948
- util: only consider regular files as logs
949
-
950
- If a user specifies a non-regular file for stderr_path or
951
- stdout_path, we should not attempt to reopen or chown
952
- it. This should also allow users to specify FIFOs as log
953
- destinations.
954
-
955
- commit 5acf5522295c947d3118926d1a1077007f615de9
956
- Author: Eric Wong <normalperson@yhbt.net>
957
- Date: Mon Aug 6 13:34:34 2012 -0700
958
-
959
- avoid assert_nothing_raised in unit tests
960
-
961
- It's better to show errors and backtraces when stuff
962
- breaks
963
-
964
- commit 7b107d66e84ad2e958d5574cb00770265dd117c2
965
- Author: Eric Wong <normalperson@yhbt.net>
966
- Date: Mon Aug 6 20:15:46 2012 +0000
967
-
968
- do not touch TCP_NOPUSH/TCP_CORK at all by default
969
-
970
- On a certain FreeBSD 8.1 installation, explicitly setting
971
- TCP_NOPUSH to zero (off) can cause EADDRNOTAVAIL errors and also
972
- resets the listen backlog to 5. Enabling TCP_NOPUSH explicitly
973
- did not exhibit this issue for the user who (privately) reported
974
- this issue.
975
-
976
- To be on the safe side, we won't set/unset TCP_NOPUSH/TCP_CORK
977
- at all, which will leave it off on all current systems.
978
-
979
- commit 53c375dc933b62b24df2c54d3938b03fa9da1f06
980
- Author: Eric Wong <normalperson@yhbt.net>
981
- Date: Fri Jun 29 16:22:17 2012 -0700
982
-
983
- bind listeners after loading for preload_app users
984
-
985
- In the case where preload_app is true, delay binding new
986
- listeners until after loading the application.
987
-
988
- Some applications have very long load times (especially Rails
989
- apps with Ruby 1.9.2). Binding listeners early may cause a load
990
- balancer to incorrectly believe the unicorn workers are ready to
991
- serve traffic even while the app is being loaded.
992
-
993
- Once a listener is bound, connect() requests from the load
994
- balancer succeed until the listen backlog is filled. This
995
- allows requests to pile up for a bit (depending on backlog size)
996
- before getting rejected by the kernel. By the time the
997
- application is loaded and ready-to-run, requests in the
998
- listen backlog are likely stale and not useful to process.
999
-
1000
- Processes inheriting listeners do not suffer this effect, as the
1001
- old process should still be capable of serving new requests.
1002
-
1003
- This change does not improve the situation for the
1004
- preload_app=false (default) use case. There may not be a
1005
- solution for preload_app=false users using large applications.
1006
-
1007
- Fortunately Ruby 1.9.3+ improves load times of large
1008
- applications significantly over 1.9.2 so this should be less of
1009
- a problem in the future.
1010
-
1011
- Reported via private email sent on 2012-06-29T22:59:10Z
1012
-
1013
- commit 91a3cde091d4ae6ff436681f155b3907daae1c04
1014
- Author: Eric Wong <normalperson@yhbt.net>
1015
- Date: Thu Jul 26 23:44:04 2012 +0000
1016
-
1017
- remove Rails-oriented integration tests
1018
-
1019
- It's too much overhead to keep Rails-specific tests working,
1020
- especially when it's hauling in an ancient version of SQLite3.
1021
- Since Rails 3 has settled down with Rack and unicorn_rails is
1022
- unlikely to need changing in the future, we can drop these
1023
- tests.
1024
-
1025
- commit f4f2de4a526f3a88573f2f839e6865637c67dbe5
1026
- Author: Eric Wong <normalperson@yhbt.net>
1027
- Date: Sun Apr 29 07:00:48 2012 +0000
1028
-
1029
- unicorn 4.3.1 - shutdown() fixes
1030
-
1031
- * Call shutdown(2) if a client EOFs on us during upload.
1032
- We can avoid holding a socket open if the Rack app forked a
1033
- process during uploads.
1034
-
1035
- * ignore potential Errno::ENOTCONN errors (from shutdown(2)).
1036
- Even on LANs, connections can occasionally be accept()-ed but
1037
- be unusable afterwards.
1038
-
1039
- Thanks to Joel Nimety <jnimety@continuity.net>,
1040
- Matt Smith <matt@nearapogee.com> and George <lists@southernohio.net>
1041
- on the mongrel-unicorn@rubyforge.org mailing list for their
1042
- feedback and testing for this release.
1043
-
1044
- commit 60b9275410277acc6adcf49a81c177c443d1d392
1045
- Author: Eric Wong <normalperson@yhbt.net>
1046
- Date: Sun Apr 29 06:49:23 2012 +0000
1047
-
1048
- isolate_for_tests: upgrade to kgio-monkey 0.4.0
1049
-
1050
- Seems to work well enough...
1051
-
1052
- commit 4551c8ad4d63d4031c618f76d39532b39e88f9be
1053
- Author: Eric Wong <normalperson@yhbt.net>
1054
- Date: Fri Apr 27 14:42:38 2012 -0700
1055
-
1056
- stream_input: call shutdown(2) if a client EOFs on us
1057
-
1058
- In case the Rack app forks before a client upload is complete,
1059
- shutdown(2) the socket to ensure the client isn't attempting to
1060
- read from us (even if it explicitly stopped writes).
1061
-
1062
- commit 04901da5ae0b4655c83be05d24ae737f1b572002
1063
- Author: Eric Wong <normalperson@yhbt.net>
1064
- Date: Fri Apr 27 11:48:16 2012 -0700
1065
-
1066
- http_server: ignore ENOTCONN (mostly from shutdown(2))
1067
-
1068
- Since there's nothing unicorn can do to avoid this error
1069
- on unconnected/halfway-connected clients, ignoring ENOTCONN
1070
- is a safe bet.
1071
-
1072
- Rainbows! has long had this rescue as it called getpeername(2)
1073
- on untrusted sockets
1074
-
1075
- commit 8c1aff1e6335f8a55723907e2661dcb09ea16205
1076
- Author: Eric Wong <normalperson@yhbt.net>
1077
- Date: Tue Apr 17 21:32:07 2012 +0000
1078
-
1079
- unicorn 4.3.0 - minor fixes and updates
1080
-
1081
- * PATH_INFO (aka REQUEST_PATH) increased to 4096 (from 1024).
1082
- This allows requests with longer path components and matches
1083
- the system PATH_MAX value common to GNU/Linux systems for
1084
- serving filesystem components with long names.
1085
-
1086
- * Apps that fork() (but do not exec()) internally for background
1087
- tasks now indicate the end-of-request immediately after
1088
- writing the Rack response.
1089
-
1090
- Thanks to Hongli Lai, Lawrence Pit, Patrick Wenger and Nuo Yan
1091
- for their valuable feedback for this release.
1092
-
1093
- commit e7f5de575b3fd58c65014191c31ed2a59bd05265
1094
- Author: Eric Wong <normalperson@yhbt.net>
1095
- Date: Tue Apr 17 21:10:51 2012 +0000
1096
-
1097
- tests: set executable bit on integration shell scripts
1098
-
1099
- These should be made executable for ease-of-understanding and
1100
- consistency, regardless of whether we actually execute them.
1101
-
1102
- commit 7eccef471a609c87281bb90d9d3b3d7a7b35709e
1103
- Author: Eric Wong <normalperson@yhbt.net>
1104
- Date: Thu Apr 12 07:40:46 2012 +0000
1105
-
1106
- http: increase REQUEST_PATH maximum length to 4K
1107
-
1108
- The previous REQUEST_PATH limit of 1024 is relatively small and
1109
- some users encounter problems with long URLs. 4K is a common
1110
- limit for PATH_MAX on modern GNU/Linux systems and REQUEST_PATH
1111
- is likely to translate to a filesystem path name.
1112
-
1113
- Thanks to Nuo Yan <yan.nuo@gmail.com> and Lawrence Pit
1114
- <lawrence.pit@gmail.com> for their feedback on this issue.
1115
-
1116
- ref: http://mid.gmane.org/CB935F19-72B8-4EC2-8A1D-5084B37C09F2@gmail.com
1117
-
1118
- commit b26d3e2c4387707ca958cd9c63c213fc7ac558fa
1119
- Author: Eric Wong <normalperson@yhbt.net>
1120
- Date: Thu Apr 12 16:46:24 2012 -0700
1121
-
1122
- shutdown client socket for apps which fork in background
1123
-
1124
- Previously we relied on implicit socket shutdown() from the
1125
- close() syscall. However, some Rack applications fork()
1126
- (without calling exec()), creating a potentially long-lived
1127
- reference to the underlying socket in a child process. This
1128
- ends up causing nginx to wait on the socket shutdown when the
1129
- child process exits.
1130
-
1131
- Calling shutdown() explicitly signals nginx (or whatever client)
1132
- that the unicorn worker is done with the socket, regardless of
1133
- the number of FD references to the underlying socket in
1134
- existence.
1135
-
1136
- This was not an issue for applications which exec() since
1137
- FD_CLOEXEC is always set on the client socket.
1138
-
1139
- Thanks to Patrick Wenger for discovering this. Thanks to
1140
- Hongli Lai for the tip on using shutdown() as is done in
1141
- Passenger.
1142
-
1143
- ref: http://mid.gmane.org/CAOG6bOTseAPbjU5LYchODqjdF3-Ez4+M8jo-D_D2Wq0jkdc4Rw@mail.gmail.com
1144
-
1145
- commit d258653745e1c8e8fa13b95b1944729294804946
1146
- Author: Eric Wong <normalperson@yhbt.net>
1147
- Date: Thu Apr 12 18:35:03 2012 -0700
1148
-
1149
- t/sslgen.sh: use larger keys for tests
1150
-
1151
- This seems required for TLSv1.2 under OpenSSL 1.0.1
1152
-
1153
- commit 12cd717d612fe8170f53f5f8377137e1b41db015
1154
- Author: Eric Wong <normalperson@yhbt.net>
1155
- Date: Wed Apr 11 21:38:10 2012 +0000
1156
-
1157
- misc documentation spelling fixes
1158
-
1159
- Found via rdoc-spellcheck
1160
-
1161
- commit 4757aa70c3b3ab953255f74831b6f98e6f32fb72
1162
- Author: Eric Wong <normalperson@yhbt.net>
1163
- Date: Mon Mar 26 21:35:10 2012 +0000
1164
-
1165
- unicorn 4.2.1 - minor fix and doc updates
1166
-
1167
- * Stale pid files are detected if a pid is recycled by processes
1168
- belonging to another user, thanks to Graham Bleach.
1169
- * nginx example config updates thanks to to Eike Herzbach.
1170
- * KNOWN_ISSUES now documents issues with apps/libs that install
1171
- conflicting signal handlers.
1172
-
1173
- commit 84e92a9d301f3f42d1d1e4430db33dfb43d54818
1174
- Author: Eric Wong <normalperson@yhbt.net>
1175
- Date: Sat Mar 24 07:45:44 2012 +0000
1176
-
1177
- tests: depend on kgio 2.7.4
1178
-
1179
- This latest version of kgio improves portability to
1180
- FreeBSD-based systems.
1181
-
1182
- commit d0e7d8d770275654024887a05d9e986589ba358c
1183
- Author: Eric Wong <normalperson@yhbt.net>
1184
- Date: Tue Mar 20 20:05:59 2012 +0000
1185
-
1186
- log EPERM errors from invalid pid files
1187
-
1188
- In some cases, EPERM may indicate a real configuration problem,
1189
- but it can also just mean the pid file is stale.
1190
-
1191
- commit 1e13ffee3469997286e65e0563b6433e7744388a
1192
- Author: Eric Wong <normalperson@yhbt.net>
1193
- Date: Tue Mar 20 19:51:35 2012 +0000
1194
-
1195
- KNOWN_ISSUES: document signal conflicts in libs/apps
1196
-
1197
- Jeffrey Yeung confirmed this issue on the mailing list.
1198
-
1199
- ref: <E8D9E7CCC2621343A0A3BB45E8DEDFA91C682DD23D@CRPMBOXPRD04.polycom.com>
1200
-
1201
- commit 9fc5c24920726d3c10bc9f39d8e97686b93cbbe0
1202
- Author: Eric Wong <normalperson@yhbt.net>
1203
- Date: Tue Mar 20 19:49:56 2012 +0000
1204
-
1205
- examples/nginx.conf: use $scheme instead of hard-coded "https"
1206
-
1207
- This adds a little more flexibility to the nginx config,
1208
- especially as protocols (e.g. SPDY) become more prevalent.
1209
-
1210
- Suggested-by: Eike Herzbach <eike@herzbach.net>
1211
-
1212
- commit 0daedd92d3e896a9fcd301bbb58e85bb54a939ee
1213
- Author: Eric Wong <normalperson@yhbt.net>
1214
- Date: Tue Mar 20 19:27:08 2012 +0000
1215
-
1216
- examples/nginx.conf: remove redundant word
1217
-
1218
- From: Eike Herzbach <eike@herzbach.net>
1219
-
1220
- commit 2ce57950e0f61eb6f325a93cef9b7e0e598fc109
1221
- Author: Graham Bleach <graham@darkskills.org.uk>
1222
- Date: Wed Feb 29 14:34:44 2012 +0000
1223
-
1224
- Start the server if another user has a PID matching our stale pidfile.
1225
-
1226
- If unicorn doesn't get terminated cleanly (for example if the machine
1227
- has its power interrupted) and the pid in the pidfile gets used by
1228
- another process, the current unicorn code will exit and not start a
1229
- server. This tiny patch fixes that behaviour.
1230
-
1231
- Acked-by: Eric Wong <normalperson@yhbt.net>
1232
-
1233
- commit b6a154eba6d79fd1572f61290e55f4d05df86730
1234
- Author: Eric Wong <normalperson@yhbt.net>
1235
- Date: Sat Jan 28 09:05:07 2012 +0000
1236
-
1237
- unicorn 4.2.0
1238
-
1239
- The GPLv3 is now an option to the Unicorn license. The existing GPLv2
1240
- and Ruby-only terms will always remain options, but the GPLv3 is
1241
- preferred.
1242
-
1243
- Daemonization is correctly detected on all terminals for development
1244
- use (Brian P O'Rourke).
1245
-
1246
- Unicorn::OobGC respects applications that disable GC entirely
1247
- during application dispatch (Yuichi Tateno).
1248
-
1249
- Many test fixes for OpenBSD, which may help other *BSDs, too.
1250
- (Jeremy Evans).
1251
-
1252
- There is now _optional_ SSL support (via the "kgio-monkey"
1253
- RubyGem). On fast, secure LANs, SSL is only intended for
1254
- detecting data corruption that weak TCP checksums cannot detect.
1255
- Our SSL support is remains unaudited by security experts.
1256
-
1257
- There are also some minor bugfixes and documentation
1258
- improvements.
1259
-
1260
- Ruby 2.0.0dev also has a copy-on-write friendly GC which can save memory
1261
- when combined with "preload_app true", so if you're in the mood, start
1262
- testing Unicorn with the latest Ruby!
1263
-
1264
- commit 8478a54008ea64bf734b9dfc78d940ed69bc00ff
1265
- Author: Eric Wong <normalperson@yhbt.net>
1266
- Date: Sat Jan 28 09:03:57 2012 +0000
1267
-
1268
- doc: update doc for Ruby 2.0.0dev CoW-friendliness
1269
-
1270
- Ruby 2.0.0dev is the future and includes a CoW-friendly GC,
1271
- so we shall encourage folks to give Ruby 2.0.0dev a spin.
1272
-
1273
- commit 49c70ae741b96588021eb1bb6327da4cf78f8ec0
1274
- Author: Eric Wong <normalperson@yhbt.net>
1275
- Date: Fri Jan 27 19:55:28 2012 +0000
1276
-
1277
- script/isolate_for_tests: disable sqlite3-ruby for Ruby 2.0.0dev
1278
-
1279
- We don't need it because we don't test old Rails with bleeding edge Ruby.
1280
-
1281
- commit c8abf6a06c0bd7eb1dfc8457ef1c31de31e7715b
1282
- Author: Eric Wong <normalperson@yhbt.net>
1283
- Date: Fri Jan 27 19:54:41 2012 +0000
1284
-
1285
- disable old Rails tests for Ruby 2.0.0
1286
-
1287
- I doubt anybody would attempt to run ancient, unsupported versions
1288
- of Rails on the latest (unreleased, even) versions of Ruby...
1289
-
1290
- commit 79ae7110b37f9b82151cc61960d93a33bb543669
1291
- Author: Eric Wong <normalperson@yhbt.net>
1292
- Date: Fri Jan 27 19:27:43 2012 +0000
1293
-
1294
- script/isolate_for_tests: update to kgio 2.7.2
1295
-
1296
- Again, we test with the latest version.
1297
-
1298
- commit d6d9178f5dc40cf5cb4c5ef61094d4103f23dce5
1299
- Author: Eric Wong <normalperson@yhbt.net>
1300
- Date: Tue Jan 24 21:48:35 2012 +0000
1301
-
1302
- update tests for Rack 1.4.1
1303
-
1304
- Trying to ensure things always work with the latest version.
1305
-
1306
- commit a7b286273690f801c61a1db9475f74299ffaef6c
1307
- Author: Eric Wong <normalperson@yhbt.net>
1308
- Date: Sun Jan 8 02:01:53 2012 +0000
1309
-
1310
- Rakefile: swap freshmeat.net URL for freecode.com
1311
-
1312
- :<
1313
-
1314
- commit 0782f9fb69993b62dc0c3a90f900c4d8cf5745e6
1315
- Author: Eric Wong <normalperson@yhbt.net>
1316
- Date: Wed Dec 28 06:03:00 2011 +0000
1317
-
1318
- update tests for rack 1.4.0
1319
-
1320
- It's the latest and greatest version, so ensure everything
1321
- works with it.
1322
-
1323
- commit cda82b5ff44c8fcfb61315f822bbaefa3471d4fe
1324
- Author: Eric Wong <normalperson@yhbt.net>
1325
- Date: Sat Dec 17 06:51:58 2011 +0000
1326
-
1327
- http: test case for "Connection: TE"
1328
-
1329
- We need to be sure we don't barf on this header.
1330
-
1331
- commit 68e8d3726542c549f291f82bdcb751d372c34597
1332
- Author: Eric Wong <normalperson@yhbt.net>
1333
- Date: Tue Dec 13 15:04:59 2011 -0800
1334
-
1335
- cleanup exception handling on SIGUSR1
1336
-
1337
- No need to duplicate logic here
1338
-
1339
- commit 7688fe59a8a80f473b276aa1ab01ff24cab6a653
1340
- Author: Eric Wong <normalperson@yhbt.net>
1341
- Date: Tue Dec 13 06:04:51 2011 +0000
1342
-
1343
- quiet possible IOError from SIGUSR1 (reopen logs)
1344
-
1345
- It's possible for a SIGUSR1 signal to be received in the
1346
- worker immediately before calling IO.select. In that case,
1347
- do not clutter logging with IOError and just process the
1348
- reopen log request.
1349
-
1350
- commit 2cc0db7761ee4286c5ccbc48395c70c41d402119
1351
- Author: Eric Wong <normalperson@yhbt.net>
1352
- Date: Mon Dec 5 02:27:14 2011 +0000
1353
-
1354
- socket_helper: fix grammerr fail
1355
-
1356
- Oops :x
1357
-
1358
- commit ee6ffca0a8d129dd930f4c63d0c4c9ef034b245f
1359
- Author: Eric Wong <normalperson@yhbt.net>
1360
- Date: Mon Dec 5 01:33:41 2011 +0000
1361
-
1362
- socket_helper: set SO_KEEPALIVE on TCP sockets
1363
-
1364
- Even LANs can break or be unreliable sometimes and socket
1365
- disconnect messages get lost, which means we fall back to
1366
- the global (kill -9) timeout in Unicorn.
1367
-
1368
- While the default global timeout is much shorter (60s) than
1369
- typical TCP timeouts, some HTTP application dispatches take much
1370
- I/O or computational time (streaming many gigabytes), so the
1371
- global timeout becomes ineffective.
1372
-
1373
- Under Linux, sysadmins are encouraged to lower the default
1374
- net.ipv4.tcp_keepalive_* knobs in sysctl. There should be
1375
- similar knobs in other operating systems (the default keepalive
1376
- intervals are usually ridiculously high, too high for anything).
1377
-
1378
- When the listen socket has SO_KEEPALIVE set, the flag should be
1379
- inherited by accept()-ed sockets.
1380
-
1381
- commit 27f666a973a59c8c6738a65b69f9060c41e6958c
1382
- Author: Eric Wong <normalperson@yhbt.net>
1383
- Date: Mon Dec 5 01:28:33 2011 +0000
1384
-
1385
- socket_helper: remove out-of-date comment for TCP_NODELAY
1386
-
1387
- We favor low latency and consistency with the Unix socket
1388
- behavior even with TCP.
1389
-
1390
- commit 5f8ea2614f92172c7b214441aa3c09a6054c3aa8
1391
- Author: Eric Wong <normalperson@yhbt.net>
1392
- Date: Mon Dec 5 01:26:39 2011 +0000
1393
-
1394
- bump dependencies
1395
-
1396
- We should always be testing with the newest available versions
1397
- to watch for incompatibilities, even if we don't /require/ the
1398
- latest ones to run.
1399
-
1400
- commit fbcf6aa641e5827da48a3b6776c9897de123b405
1401
- Author: Eric Wong <normalperson@yhbt.net>
1402
- Date: Tue Nov 15 16:32:12 2011 -0800
1403
-
1404
- tests: try to set a shorter path for Unix domain sockets
1405
-
1406
- We're only allowed 108 bytes for Unix domain sockets.
1407
- mktemp(1) usually generates path names of reasonable length
1408
- and we rely on it anyways.
1409
-
1410
- commit c4c880c5a2ac521d4a6d0bad132d38dfff375a6c
1411
- Author: Eric Wong <normalperson@yhbt.net>
1412
- Date: Tue Nov 15 15:28:44 2011 -0800
1413
-
1414
- tests: just use the sha1sum implemented in Ruby
1415
-
1416
- The output of SHA1 command-line tools is too unstable and
1417
- I'm more comfortable with Ruby 1.9 encoding support than
1418
- I was in 2009.
1419
-
1420
- Jeremy Evans noted the output of "openssl sha1" has
1421
- changed since I last used it.
1422
-
1423
- commit 2fd5910969419c17aa6a31fb2119eb47a121d497
1424
- Author: Jeremy Evans <jeremyevans0@gmail.com>
1425
- Date: Tue Nov 15 15:26:36 2011 -0800
1426
-
1427
- test_helper: ensure test client connects to valid address
1428
-
1429
- You can listen on 0.0.0.0, but trying to connect to it doesn't work
1430
- well on OpenBSD.
1431
-
1432
- Acked-by: Eric Wong <normalperson@yhbt.net>
1433
-
1434
- commit 66c706acfb3cda802bac4629219e3c3e064352ed
1435
- Author: Jeremy Evans <jeremyevans0@gmail.com>
1436
- Date: Tue Nov 15 15:21:58 2011 -0800
1437
-
1438
- t0011: fix test under OpenBSD
1439
-
1440
- expr on OpenBSD uses a basic regular expression (according to
1441
- re_format(7)), which doesn't support +, only *.
1442
-
1443
- Acked-by: Eric Wong <normalperson@yhbt.net>
1444
-
1445
- commit 9e62bc10294f0b6344b47cd596a93ae457d546fb
1446
- Author: Eric Wong <normalperson@yhbt.net>
1447
- Date: Tue Nov 15 15:13:15 2011 -0800
1448
-
1449
- configurator: limit timeout to 30 days
1450
-
1451
- There's no practical difference between a timeout of 30 days and
1452
- 68 years from an HTTP server standpoint.
1453
-
1454
- POSIX limits us to 31 days, actually, but there could be
1455
- rounding error with floats used in Ruby time calculations and
1456
- there's no real difference between 30 and 31 days, either...
1457
-
1458
- Thanks to Jeremy Evans for pointing out large values will throw
1459
- EINVAL (on select(2) under OpenBSD with Ruby 1.9.3 and
1460
- RangeError on older Rubies.
1461
-
1462
- commit aab850780f9ff0d74c346d7fd62ac588f4d5879b
1463
- Author: Eric Wong <normalperson@yhbt.net>
1464
- Date: Tue Nov 15 15:09:21 2011 -0800
1465
-
1466
- t: ensure SSL certificates exist on fresh test
1467
-
1468
- We throw up some fake SSL certs for testing
1469
-
1470
- commit c7ba76a21c5d00fb5c173cd6aa847442bbc652cb
1471
- Author: Yuichi Tateno <hotchpotch@gmail.com>
1472
- Date: Mon Oct 3 16:51:19 2011 +0900
1473
-
1474
- OobGC: force GC.start
1475
-
1476
- [ew: we need to explicitly enable GC if it is disabled
1477
- and respect applications that disable GC]
1478
-
1479
- Acked-by: Eric Wong <normalperson@yhbt.net>
1480
-
1481
- commit ac346b5abcfa6253bd792091e5fb011774c40d49
1482
- Author: Eric Wong <normalperson@yhbt.net>
1483
- Date: Wed Sep 7 00:36:58 2011 +0000
1484
-
1485
- add preliminary SSL support
1486
-
1487
- This will also be the foundation of SSL support in Rainbows!
1488
- and Zbatery. Some users may also want to use this in
1489
- Unicorn on LANs to meet certain security/auditing requirements.
1490
- Of course, Nightmare! (in whatever form) should also be able to
1491
- use it.
1492
-
1493
- commit b48c6659b294b37f2c6ff3e75c1c9245522d48d1
1494
- Author: Brian P O'Rourke <bpo@somnambulance.net>
1495
- Date: Wed Sep 14 18:50:29 2011 +0800
1496
-
1497
- Detect daemonization via configuration.
1498
-
1499
- This prevents the stopping of all workers by SIGWINCH if you're
1500
- using a windowing system that will 'exec' unicorn from a process
1501
- that's already in a process group.
1502
-
1503
- Acked-by: Eric Wong <normalperson@yhbt.net>
1504
-
1505
- commit db2cba26acc5748bcf9919e3184a667c46911f8c
1506
- Author: Eric Wong <normalperson@yhbt.net>
1507
- Date: Fri Sep 9 16:10:55 2011 -0700
1508
-
1509
- Links: add a link to the UnXF middleware
1510
-
1511
- Since unicorn is designed to be deployed behind nginx (or
1512
- similar), X-Forwarded-* headers are common and Rack applications
1513
- may blindly trust spoofed X-Forwarded-* headers. UnXF provides
1514
- a central place for managing that trust by using rpatricia.
1515
-
1516
- commit d209910e29d4983f8346233262a49541464252c1
1517
- Author: Eric Wong <normalperson@yhbt.net>
1518
- Date: Fri Sep 9 15:48:53 2011 -0700
1519
-
1520
- http_server: update comment on tick == 0
1521
-
1522
- The old comment was confusing. We only zero the tick counter
1523
- when forking because application loading can take a long time.
1524
- Otherwise, it's always updated.
1525
-
1526
- ref: http://mid.gmane.org/20110908191352.GA25251@dcvr.yhbt.net
1527
-
1528
- commit 0113de29108fb669a43d4d7f5528c77a2f96db57
1529
- Author: Eric Wong <normalperson@yhbt.net>
1530
- Date: Fri Sep 2 16:17:57 2011 -0700
1531
-
1532
- http_server: a few more things eligible for GC in worker
1533
-
1534
- There is no need to keep extra hashes or Proc objects around in
1535
- the heap.
1536
-
1537
- commit cd22c595633ec36b69c60f27f2c3841ae0f6faca
1538
- Author: Eric Wong <normalperson@yhbt.net>
1539
- Date: Mon Aug 29 19:54:32 2011 +0000
1540
-
1541
- add GPLv3 option to the license
1542
-
1543
- Existing license terms (Ruby-specific) and GPLv2 remain
1544
- in place, but GPLv3 is preferred as it helps with
1545
- distribution of AGPLv3 code and is explicitly compatible
1546
- with Apache License (v2.0).
1547
-
1548
- Many more reasons are documented by the FSF:
1549
- https://www.gnu.org/licenses/quick-guide-gplv3.html
1550
- http://gplv3.fsf.org/rms-why.html
1551
-
1552
- ref: http://thread.gmane.org/gmane.comp.lang.ruby.unicorn.general/933
1553
-
1554
- commit 8bed251777e9850b04f52f4c520e8b173bd1d756
1555
- Author: Eric Wong <normalperson@yhbt.net>
1556
- Date: Thu Aug 25 14:24:23 2011 -0700
1557
-
1558
- unicorn 4.1.1 - fix last-resort timeout accuracy
1559
-
1560
- The last-resort timeout mechanism was inaccurate and often
1561
- delayed in activation since the 2.0.0 release. It is now fixed
1562
- and remains power-efficient in idle situations, especially with
1563
- the wakeup reduction in MRI 1.9.3+.
1564
-
1565
- There is also a new document on application timeouts
1566
- intended to discourage the reliance on this last-resort
1567
- mechanism. It is visible on the web at:
1568
-
1569
- http://unicorn.bogomips.org/Application_Timeouts.html
1570
-
1571
- commit 34b400cbec2a05e9a1d9fad2d6bd34f54620fdcb
1572
- Author: Eric Wong <normalperson@yhbt.net>
1573
- Date: Wed Aug 24 17:59:55 2011 -0700
1574
-
1575
- doc: add Application Timeouts document
1576
-
1577
- Hopefully this leads to fewer worker processes being killed.
1578
-
1579
- commit b781e5b1a9b652ee3da73e16851e1f17f0cecd88
1580
- Author: Eric Wong <normalperson@yhbt.net>
1581
- Date: Tue Aug 23 19:50:03 2011 -0700
1582
-
1583
- test_helper: remove needless LOAD_PATH mangling
1584
-
1585
- We do it in the Ruby invocation or RUBYLIB.
1586
-
1587
- commit e9da4ce4c8917934242037db0c2735bd7dab1586
1588
- Author: Eric Wong <normalperson@yhbt.net>
1589
- Date: Tue Aug 23 17:39:53 2011 -0700
1590
-
1591
- fix sleep/timeout activation accuracy
1592
-
1593
- I've noticed in stderr logs from some folks that (last resort)
1594
- timeouts from the master process are taking too long to activate
1595
- due to the workarounds for suspend/hibernation.
1596
-
1597
- commit 8d8b500816371fb8f8fce5e9f21cf235ee8d26ae
1598
- Author: Eric Wong <normalperson@yhbt.net>
1599
- Date: Mon Aug 22 20:04:47 2011 +0000
1600
-
1601
- .document: re-add OobGC documentation
1602
-
1603
- Oops!
1604
-
1605
- commit 4f33a71dc2e24f0cc59315b49e7a7ffe71f368d3
1606
- Author: Eric Wong <normalperson@yhbt.net>
1607
- Date: Fri Aug 19 23:04:30 2011 +0000
1608
-
1609
- unicorn 4.1.0 - small updates and fixes
1610
-
1611
- * Rack::Chunked and Rack::ContentLength middlewares are loaded
1612
- by default for RACK_ENV=(development|deployment) users to match
1613
- Rack::Server behavior. As before, use RACK_ENV=none if you want
1614
- fine-grained control of your middleware. This should also
1615
- help users of Rainbows! and Zbatery.
1616
-
1617
- * CTL characters are now rejected from HTTP header values
1618
-
1619
- * Exception messages are now filtered for [:cntrl:] characters
1620
- since application/middleware authors may forget to do so
1621
-
1622
- * Workers will now terminate properly if a SIGQUIT/SIGTERM/SIGINT
1623
- is received while during worker process initialization.
1624
-
1625
- * close-on-exec is explicitly disabled to future-proof against
1626
- Ruby 2.0 changes [ruby-core:38140]
1627
-
1628
- commit 5a6d4ddd8ea2df799654abadb1e25f3def9d478b
1629
- Author: Eric Wong <normalperson@yhbt.net>
1630
- Date: Sat Aug 20 00:28:39 2011 +0000
1631
-
1632
- rdoc cleanups
1633
-
1634
- commit 8de6ab371c1623669b86a5dfa8703c8fd539011f
1635
- Author: Eric Wong <normalperson@yhbt.net>
1636
- Date: Fri Aug 19 22:13:04 2011 +0000
1637
-
1638
- close race if an exit signal hits the worker before trap
1639
-
1640
- The signal handler from the master is still active and will
1641
- push the pending signal to SIG_QUEUE if a worker receives
1642
- a signal immediately after forking.
1643
-
1644
- commit f8b22397ca395a9173d391e8699d539503707792
1645
- Author: Eric Wong <normalperson@yhbt.net>
1646
- Date: Fri Aug 19 21:55:35 2011 +0000
1647
-
1648
- gemspec: bump wrongdoc dependency for dev
1649
-
1650
- Hopefully it points people towards the mailing list
1651
-
1652
- commit 86bbb84231a8a16ec54a621c66843b103b5a8610
1653
- Author: Eric Wong <normalperson@yhbt.net>
1654
- Date: Fri Aug 19 21:54:37 2011 +0000
1655
-
1656
- tests: bump test deps to the latest versions
1657
-
1658
- Nothing appears broken :)
1659
-
1660
- commit 1077961a3f8933c65d39c7e6c9ed6ff3b6b53647
1661
- Author: Eric Wong <normalperson@yhbt.net>
1662
- Date: Fri Aug 19 20:47:29 2011 +0000
1663
-
1664
- Rack::Chunked and ContentLength middlewares by default
1665
-
1666
- This is needed to match the behavior of Rack::Server for
1667
- RACK_ENV=(deployment|development), actually. This won't
1668
- affect users of other RACK_ENV values.
1669
-
1670
- This change has minor performance consequences, so users
1671
- negatively affected should set RACK_ENV to "none" instead for
1672
- full control of their middleware stack.
1673
-
1674
- This mainly affects Rainbows!/Zbatery users since they have
1675
- persistent connections and /need/ Content-Length or
1676
- Transfer-Encoding:chunked headers.
1677
-
1678
- commit 7fe08addefb12bd2f4c63901e8cf631e9162ca51
1679
- Author: Eric Wong <normalperson@yhbt.net>
1680
- Date: Tue Aug 16 19:44:04 2011 -0700
1681
-
1682
- filter exception messages with control characters
1683
-
1684
- We do not want to affect terminals of users who view our log
1685
- files.
1686
-
1687
- commit b1f328b0dd3647168fcc8b1ad9b09284707ad929
1688
- Author: Eric Wong <normalperson@yhbt.net>
1689
- Date: Thu Aug 11 17:28:47 2011 -0700
1690
-
1691
- http_server: small simplification for redirects
1692
-
1693
- We only need the fileno in the key which we use
1694
- to generate the UNICORN_FD env. Otherwise the IO
1695
- object is accepted and understood by Ruby.
1696
-
1697
- commit 6ab27beeda3b0aaaa66f7cc4f734944a7aa84385
1698
- Author: Eric Wong <normalperson@yhbt.net>
1699
- Date: Thu Aug 11 12:59:09 2011 -0700
1700
-
1701
- future-proof against close-on-exec by default
1702
-
1703
- Setting the close-on-exec flag by default and closing
1704
- non-standard descriptors is proposed for Ruby 1.9.4/2.0.0.
1705
- Since Unicorn is one of the few apps to rely on FD inheritance
1706
- across exec(), we need to workaround this by redirecting each
1707
- listener FD to itself for Kernel#exec.
1708
-
1709
- Ruby supports a hash as the final argument to Kernel#exec since
1710
- at least 1.9.1 (nobody cares for 1.9.0 anymore). This allows
1711
- users to backport close-on-exec by default patches to older
1712
- 1.9.x installs without breaking anything.
1713
-
1714
- ref: http://redmine.ruby-lang.org/issues/5041
1715
-
1716
- commit 60d60a6fa716e91651997d86e3cb9cda41475975
1717
- Author: Eric Wong <normalperson@yhbt.net>
1718
- Date: Thu Aug 11 12:46:27 2011 -0700
1719
-
1720
- test_socket_helper: Socket#bind may fail with EINVAL if IPv6 is missing
1721
-
1722
- I don't build IPv6 into all my kernels; maybe other testers do
1723
- not, either.
1724
-
1725
- commit ec8a8f32d257290aac377f1c7b1c496e1df75f73
1726
- Author: Eric Wong <normalperson@yhbt.net>
1727
- Date: Wed Aug 3 11:00:28 2011 -0700
1728
-
1729
- KNOWN_ISSUES: add link to FreeBSD jail workaround notes
1730
-
1731
- Thanks to Tatsuya Ono on the unicorn mailing list.
1732
-
1733
- commit 406b8b0e2ed6e5be34d8ec3cd4b16048233c2856
1734
- Author: Eric Wong <normalperson@yhbt.net>
1735
- Date: Tue Aug 2 23:52:14 2011 +0000
1736
-
1737
- trap death signals in the worker sooner
1738
-
1739
- This helps close a race condition preventing shutdown if
1740
- loading the application (preload_app=false) takes a long
1741
- time and the user decides to kil workers instead.
1742
-
1743
- commit 6d56d7ab891d2cb6127b4cba428a0f7c13b9d2ce
1744
- Author: Eric Wong <normalperson@yhbt.net>
1745
- Date: Wed Jul 20 22:42:16 2011 +0000
1746
-
1747
- http_server: explicitly disable close-on-exec for listeners
1748
-
1749
- Future versions of Ruby may change this from the default *nix
1750
- behavior, so we need to explicitly allow FD passing via exec().
1751
-
1752
- ref: http://redmine.ruby-lang.org/issues/5041
1753
-
1754
- commit 83f72773b7242d86263a18950fca7c8101d7038d
1755
- Author: Eric Wong <normalperson@yhbt.net>
1756
- Date: Tue Jul 12 23:52:33 2011 +0000
1757
-
1758
- http: reject non-LWS CTL chars (0..31 + 127) in field values
1759
-
1760
- RFC 2616 doesn't appear to allow most CTL bytes even though
1761
- Mongrel always did. Rack::Lint disallows 0..31, too, though we
1762
- allow "\t" (HT, 09) since it's LWS and allowed by RFC 2616.
1763
-
1764
- commit cc63e2ee54b4113c40631214618f51c9ef867a91
1765
- Author: Eric Wong <normalperson@yhbt.net>
1766
- Date: Fri Jul 1 07:52:31 2011 +0000
1767
-
1768
- socket_helper: fix undefined variable for logging
1769
-
1770
- I corrupted a Ruby build and SOL_TCP didn't get defined :x
1771
-
1772
- commit 79c646d69822df542aaabe285eac08cdf4111dc0
1773
- Author: Eric Wong <normalperson@yhbt.net>
1774
- Date: Wed Jun 29 18:49:45 2011 +0000
1775
-
1776
- unicorn 4.0.1 - regression bugfixes
1777
-
1778
- This release fixes things for users of per-worker "listen"
1779
- directives in the after_fork hook. Thanks to ghazel@gmail.com
1780
- for reporting the bug.
1781
-
1782
- The "timeout" configurator directive is now truncated to
1783
- 0x7ffffffe seconds to prevent overflow when calling
1784
- IO.select.
1785
-
1786
- commit cdb9bc905cf8e15e8a7d0900f57409f54a7b80ac
1787
- Author: Eric Wong <normalperson@yhbt.net>
1788
- Date: Wed Jun 29 18:48:42 2011 +0000
1789
-
1790
- configurator: limit timeout to 32-bit INT_MAX-1
1791
-
1792
- Nobody will miss one second if they specify an "infinite"
1793
- timeout of ~68 years. This prevents duplicating this logic
1794
- in Rainbows!
1795
-
1796
- commit 19f798301ac1884f423640efafb277b071bb5439
1797
- Author: Eric Wong <normalperson@yhbt.net>
1798
- Date: Wed Jun 29 07:19:32 2011 +0000
1799
-
1800
- fix per-worker listen directive in after_fork hook
1801
-
1802
- The testcase for this was broken, too, so we didn't notice
1803
- this :<
1804
-
1805
- Reported-by: ghazel@gmail.com on the Rainbows! mailing list,
1806
- http://mid.gmane.org/BANLkTi=oQXK5Casq9SuGD3edeUrDPvRm3A@mail.gmail.com
1807
-
1808
- commit 38672501206c9e64d241e3d8571f70b198f0c1e5
1809
- Author: Eric Wong <normalperson@yhbt.net>
1810
- Date: Mon Jun 27 20:51:16 2011 +0000
1811
-
1812
- configurator: truncate timeouts to 32-bit LONG_MAX
1813
-
1814
- IO.select in Ruby can't wait longer than this. This
1815
- means Unicorn can't support applications that take
1816
- longer than 68 years to respond :(
1817
-
1818
- commit fb8bb4469849fa2b2241152aea7e9e82bd3cbcc8
1819
- Author: Eric Wong <normalperson@yhbt.net>
1820
- Date: Mon Jun 27 08:12:58 2011 +0000
1821
-
1822
- unicorn 4.0.0 - for mythical hardware!
1823
-
1824
- A single Unicorn instance may manage more than 1024 workers
1825
- without needing privileges to modify resource limits. As a
1826
- result of this, the "raindrops"[1] gem/library is now a required
1827
- dependency.
1828
-
1829
- TCP socket defaults now favor low latency to mimic UNIX domain
1830
- socket behavior (tcp_nodelay: true, tcp_nopush: false). This
1831
- hurts throughput, users who want to favor throughput should
1832
- specify "tcp_nodelay: false, tcp_nopush: true" in the listen
1833
- directive.
1834
-
1835
- Error logging is more consistent and all lines should be
1836
- formatted correctly in backtraces. This may break the
1837
- behavior of some log parsers.
1838
-
1839
- The call stack is smaller and thus easier to examine backtraces
1840
- when debugging Rack applications.
1841
-
1842
- There are some internal API changes and cleanups, but none that
1843
- affect applications designed for Rack. See "git log v3.7.0.."
1844
- for details.
1845
-
1846
- For users who cannot install kgio[2] or raindrops, Unicorn 1.1.x
1847
- remains supported indefinitely. Unicorn 3.x will remain
1848
- supported if there is demand. We expect raindrops to introduce
1849
- fewer portability problems than kgio did, however.
1850
-
1851
- [1] http://raindrops.bogomips.org/
1852
- [2] http://bogomips.org/kgio/
1853
-
1854
- commit 4785db8cf19899756c4a79462fed861a1d1bd96c
1855
- Author: Eric Wong <normalperson@yhbt.net>
1856
- Date: Mon Jun 27 08:46:28 2011 +0000
1857
-
1858
- slightly faster worker process spawning
1859
-
1860
- It's still O(n) since we don't maintain a reverse mapping of
1861
- spawned processes, but at least we avoid the extra overhead of
1862
- creating an array every time.
1863
-
1864
- commit 441bb8ab48f15f583b82a3f8520648a4694a198f
1865
- Author: Eric Wong <normalperson@yhbt.net>
1866
- Date: Sat Jun 25 22:40:20 2011 +0000
1867
-
1868
- reenable heartbeat checking for idle workers
1869
-
1870
- Some applications/libraries may launch background threads which
1871
- can lock up the process. So we can't disable heartbeat checking
1872
- just because the main thread is sleeping. This also has the
1873
- side effect of reducing master process wakeups when all workers
1874
- are idle.
1875
-
1876
- commit 63bcecf48994aa9afe6dc2890efe3ba4b0696bbf
1877
- Author: Eric Wong <normalperson@yhbt.net>
1878
- Date: Fri Jun 24 08:17:02 2011 +0000
1879
-
1880
- test with latest kgio and rack versions
1881
-
1882
- We'll continue to support older versions, but make
1883
- sure things on the latest ones work.
1884
-
1885
- commit 079eb70692fcda9b4bcf572319434ffa7f9e9849
1886
- Author: Eric Wong <normalperson@yhbt.net>
1887
- Date: Fri Jun 24 07:19:22 2011 +0000
1888
-
1889
- allow multiline comments in config.ru
1890
-
1891
- This matches the latest Rack behavior.
1892
-
1893
- We can't just use Rack::Builder.parse_file because our option
1894
- parser logic is slightly different and incompatible.
1895
-
1896
- ref: rack commit d31cf2b7c0c77c04510c08d95776315ceb24ba54
1897
-
1898
- commit b3b6b0dff19f8a22a96525bba22bf061d03c3fc5
1899
- Author: Eric Wong <normalperson@yhbt.net>
1900
- Date: Thu Jun 23 05:12:08 2011 +0000
1901
-
1902
- http_server: avoid race conditions on SIGQUIT
1903
-
1904
- We don't want the Worker#tick= assignment to trigger after we
1905
- accept a client, since we'd drop that request when we raise the
1906
- exception that breaks us out of the worker loop.
1907
-
1908
- Also, we don't want to enter IO.select with an empty LISTENERS
1909
- array so we can fail with IOError or Errno::EBADF.
1910
-
1911
- commit fbe48964d79f3d592f4f75960c5940add9ccf22a
1912
- Author: Eric Wong <normalperson@yhbt.net>
1913
- Date: Wed Jun 22 07:48:36 2011 +0000
1914
-
1915
- http_server: remove unused variable
1916
-
1917
- A leftover from the fchmod() days
1918
-
1919
- commit 1a2dc92e7ff92157aa12e2c8a8a09ec0d56e0eb6
1920
- Author: Eric Wong <normalperson@yhbt.net>
1921
- Date: Wed Jun 22 02:06:46 2011 +0000
1922
-
1923
- gemspec: fix raindrops dependency
1924
-
1925
- Oops, I suck at Ruby :x
1926
-
1927
- commit de142bc61f714392b0902b6e66a31c34ba223cdb
1928
- Author: Eric Wong <normalperson@yhbt.net>
1929
- Date: Wed Jun 22 02:05:20 2011 +0000
1930
-
1931
- TODO: remove scalability to >= 1024 workers item
1932
-
1933
- We can do it!
1934
-
1935
- commit b08410facbccf96c67822a92888de0bc1910390e
1936
- Author: Eric Wong <normalperson@yhbt.net>
1937
- Date: Fri Jun 17 08:59:02 2011 +0000
1938
-
1939
- test_http_parser: fix for URI too long errors (#3)
1940
-
1941
- The random garbage generator may occasionally generate URIs that
1942
- are too long and cause the URI-specific error to be raised
1943
- instead of the generic parser error we recently introduced.
1944
-
1945
- Follow-up-to: commit 742c4d77f179a757dbcb1fa350f9d75b757acfc7
1946
-
1947
- commit 5f478f5a9a58f72c0a844258b8ee614bf24ea9f7
1948
- Author: Eric Wong <normalperson@yhbt.net>
1949
- Date: Fri Jun 17 08:54:37 2011 +0000
1950
-
1951
- error logging is more consistent
1952
-
1953
- Backtraces are now formatted properly (with timestamps) and
1954
- exceptions will be logged more consistently and similar to
1955
- Logger defaults:
1956
-
1957
- "#{exc.message} (#{e.class})"
1958
- backtrace.each { |line| ... }
1959
-
1960
- This may break some existing monitoring scripts, but errors
1961
- will be more standardized and easier to check moving forward.
1962
-
1963
- commit fa7ce0a6a755cb71a30417478fb797ee7b8d94b5
1964
- Author: Eric Wong <normalperson@yhbt.net>
1965
- Date: Fri Jun 17 07:32:17 2011 +0000
1966
-
1967
- add broken app test from Rainbows!
1968
-
1969
- "app error" is more correct, and consistent with Rainbows!
1970
-
1971
- commit 593deb92e8ebd4e77e482c567d97b6ee496ac378
1972
- Author: Eric Wong <normalperson@yhbt.net>
1973
- Date: Thu Jun 16 23:57:31 2011 +0000
1974
-
1975
- ensure at_exit handlers run on graceful shutdown
1976
-
1977
- rescuing from SystemExit and exit()-ing again is ugly, but
1978
- changes made to lower stack depth positively affect _everyone_
1979
- so we'll tolerate some ugliness here.
1980
-
1981
- We'll need to disable graceful exit for some tests, too...
1982
-
1983
- commit a0c59adf71506b8808de276b1288a319424ee71a
1984
- Author: Eric Wong <normalperson@yhbt.net>
1985
- Date: Thu Jun 16 22:54:40 2011 +0000
1986
-
1987
- replace fchmod()-based heartbeat with raindrops
1988
-
1989
- This means we no longer waste an extra file descriptor per
1990
- worker process in the master. Now there's no need to set a
1991
- higher file descriptor limit for systems running >= 1024
1992
- workers.
1993
-
1994
- commit 95f543a9583e58c56b1c480df84b4b88e6669403
1995
- Author: Eric Wong <normalperson@yhbt.net>
1996
- Date: Thu Jun 16 23:11:28 2011 +0000
1997
-
1998
- add heartbeat timeout test from Rainbows!
1999
-
2000
- Just in case we break anything
2001
-
2002
- commit 4beeb52b1c52ea4486dea13cebe2a8438a9f2139
2003
- Author: Eric Wong <normalperson@yhbt.net>
2004
- Date: Wed Jun 15 01:10:07 2011 +0000
2005
-
2006
- memory reductions in worker process
2007
-
2008
- There's absolutely no need to keep the OptionParser around in
2009
- worker processes.
2010
-
2011
- commit e9e7a1c7c1778ed7cd7c724b26362d1f89b2801c
2012
- Author: Eric Wong <normalperson@yhbt.net>
2013
- Date: Wed Jun 15 00:56:47 2011 +0000
2014
-
2015
- test_http_parser: fix for URI too long errors (again)
2016
-
2017
- The random garbage generator may occasionally generate URIs that
2018
- are too long and cause the URI-specific error to be raised
2019
- instead of the generic parser error we recently introduced.
2020
-
2021
- Follow-up-to: commit 742c4d77f179a757dbcb1fa350f9d75b757acfc7
2022
-
2023
- commit a7d9eb03bf3ac554854990018a67f34c2221fb20
2024
- Author: Eric Wong <normalperson@yhbt.net>
2025
- Date: Wed Jun 15 00:53:45 2011 +0000
2026
-
2027
- http_server: kill another stack frame off
2028
-
2029
- We always know we have zero workers at startup, so we don't
2030
- need to check before hand. SIGHUP users may suffer a small
2031
- performance decrease as a result, but there's not much we
2032
- can do about it.
2033
-
2034
- commit f8953ce747bd35b2008fc3daa040b89002a3133e
2035
- Author: Eric Wong <normalperson@yhbt.net>
2036
- Date: Wed Jun 15 00:47:25 2011 +0000
2037
-
2038
- http_server: factor out inherit_listeners! method
2039
-
2040
- This should be easier to understand and reduces garbage on
2041
- stack, too.
2042
-
2043
- commit 6aa423454d7c3926297426fc22d23c88531bd15a
2044
- Author: Eric Wong <normalperson@yhbt.net>
2045
- Date: Wed Jun 15 00:45:37 2011 +0000
2046
-
2047
- test_response: httpdate is low resolution
2048
-
2049
- It may return the previous second
2050
-
2051
- commit 63e421d82ac6d838f9b8b02d4a727bf6f783e7b6
2052
- Author: Eric Wong <normalperson@yhbt.net>
2053
- Date: Wed Jun 15 00:39:37 2011 +0000
2054
-
2055
- remove BasicSocket.do_not_reverse_lookup setting
2056
-
2057
- kgio never does reverse lookup
2058
-
2059
- commit 12024a6268d4e96fcf96df33fb7d82eaec9c16b1
2060
- Author: Eric Wong <normalperson@yhbt.net>
2061
- Date: Wed Jun 15 00:20:26 2011 +0000
2062
-
2063
- http: delay CoW string invalidations in filter_body
2064
-
2065
- Not all invocations of filter_body will trigger CoW on the
2066
- given destination string. We can also avoid an unnecessary
2067
- rb_str_set_len() in the non-chunked path, too.
2068
-
2069
- commit d91ca210615432bdad3ee70c08908ea7064c6b95
2070
- Author: Eric Wong <normalperson@yhbt.net>
2071
- Date: Wed Jun 15 00:15:42 2011 +0000
2072
-
2073
- http: remove tainting flag
2074
-
2075
- Needless line noise, kgio doesn't support tainting anyways.
2076
-
2077
- commit c719497c6db220a9f58c71970f2370cb2e6c99c3
2078
- Author: Eric Wong <normalperson@yhbt.net>
2079
- Date: Wed Jun 15 00:09:32 2011 +0000
2080
-
2081
- http_server: get rid of EINTR checks
2082
-
2083
- Ruby IO.select never raises that, actually
2084
-
2085
- commit 742c4d77f179a757dbcb1fa350f9d75b757acfc7
2086
- Author: Eric Wong <normalperson@yhbt.net>
2087
- Date: Wed Jun 15 00:08:03 2011 +0000
2088
-
2089
- test_http_parser: fix for URI too long errors
2090
-
2091
- The random garbage generator may occasionally generate URIs that
2092
- are too long and cause the URI-specific error to be raised
2093
- instead of the generic parser error we recently introduced.
2094
-
2095
- commit 20c0f28cf60f164c9788b694625bce22962464f3
2096
- Author: Eric Wong <normalperson@yhbt.net>
2097
- Date: Wed Jun 15 00:01:32 2011 +0000
2098
-
2099
- http_server: further reduce stack usage for app.call
2100
-
2101
- By avoid Array#each
2102
-
2103
- commit ddcea26976f24dda8a0cd65022065100bb40fbb7
2104
- Author: Eric Wong <normalperson@yhbt.net>
2105
- Date: Tue Jun 14 23:49:57 2011 +0000
2106
-
2107
- http_server: small cleanups for attr assignments
2108
-
2109
- ivar references using @ are slightly faster than calling
2110
- attribute methods.
2111
-
2112
- commit f1d8dd94122395cd7b072aeec8942f2cd6b8ca99
2113
- Author: Eric Wong <normalperson@yhbt.net>
2114
- Date: Tue Jun 14 23:25:43 2011 +0000
2115
-
2116
- http_server: do not rescue from proper exits
2117
-
2118
- Oops, it messes logging up badly.
2119
-
2120
- commit 2f3c135b15e6603e71bb9d6d054e5cd606c7b2b6
2121
- Author: Eric Wong <normalperson@yhbt.net>
2122
- Date: Tue Jun 14 00:51:01 2011 +0000
2123
-
2124
- http: fix documentation for dechunk!
2125
-
2126
- chunk_ready! was my original name for it, but I'm indecisive
2127
- when it comes to naming things.
2128
-
2129
- commit c297fde2000dcc8bdf7cb9f912fb2ea07be1c282
2130
- Author: Eric Wong <normalperson@yhbt.net>
2131
- Date: Mon Jun 13 23:42:54 2011 +0000
2132
-
2133
- http: dechunk! method to enter dechunk mode
2134
-
2135
- This allows one to enter the dechunker without parsing
2136
- HTTP headers beforehand. Since we skipped header parsing,
2137
- trailer parsing is not supported since we don't know
2138
- what trailers might be (to our knowledge, nobody uses trailers
2139
- anyways)
2140
-
2141
- commit 131c241840990753f7b75344092058ef7434ea8b
2142
- Author: Eric Wong <normalperson@yhbt.net>
2143
- Date: Mon Jun 13 22:35:18 2011 +0000
2144
-
2145
- http: document reasoning for memcpy in filter_body
2146
-
2147
- copy-on-write behavior doesn't help you if your common
2148
- use case triggers copies.
2149
-
2150
- commit 4aa8fd1322ccb46fc58a4f26ca111a03c1720c7d
2151
- Author: Eric Wong <normalperson@yhbt.net>
2152
- Date: Mon Jun 13 22:18:30 2011 +0000
2153
-
2154
- http: rename variables in filter_body implementation
2155
-
2156
- Makes things easier-to-understand since it's based on memcpy()
2157
-
2158
- commit b1d8d3de991ebc5b7d655f2e8a1294129021db8a
2159
- Author: Eric Wong <normalperson@yhbt.net>
2160
- Date: Mon Jun 13 22:17:14 2011 +0000
2161
-
2162
- change TCP defaults to favor low latency
2163
-
2164
- These TCP settings are a closer match to the behavior of
2165
- Unix domain sockets and what users expect for fast streaming
2166
- responses even if nginx can't provide them just now...
2167
-
2168
- commit c1cac62571b543ac8e9f7203f8c315bb75516a20
2169
- Author: Eric Wong <normalperson@yhbt.net>
2170
- Date: Mon Jun 13 21:44:24 2011 +0000
2171
-
2172
- gemspec: bump kgio dependency to ~> 2.4
2173
-
2174
- kgio 2.4.1 portability should be better than 2.3, so
2175
- less user confusion and push them towards 2.4
2176
-
2177
- commit 5d2284afdc2d4f4ff122394ae5fd78a32cb8c09e
2178
- Author: Eric Wong <normalperson@yhbt.net>
2179
- Date: Fri Jun 10 23:54:47 2011 +0000
2180
-
2181
- runtime stack size reductions
2182
-
2183
- This reduces the size of `caller` by 5 frames,
2184
- which should make backtraces easier-to-read, raising
2185
- exceptions less expensive, and reduce GC runtime.
2186
-
2187
- commit 987b9496171b090e62de488ddc7b9a175c4c8d33
2188
- Author: Eric Wong <normalperson@yhbt.net>
2189
- Date: Fri Jun 10 23:44:10 2011 +0000
2190
-
2191
- test/benchmark/stack.ru: app for measuring stack depth
2192
-
2193
- Stack depth affects Ruby GC performance, so lowering it
2194
- makes sense
2195
-
2196
- commit 1c033dfd66c713afb05911e5e220adb7fc4ddc17
2197
- Author: Eric Wong <normalperson@yhbt.net>
2198
- Date: Thu Jun 9 13:36:20 2011 -0700
2199
-
2200
- unicorn 3.7.0 - minor feature update
2201
-
2202
- * miscellaneous documentation improvements
2203
- * return 414 (instead of 400) for Request-URI Too Long
2204
- * strip leading and trailing linear whitespace in header values
2205
-
2206
- User-visible improvements meant for Rainbows! users:
2207
-
2208
- * add :ipv6only "listen" option (same as nginx)
2209
-
2210
- commit c3880bb0cc00821d1715a7dd94b0b76a03a7ace0
2211
- Author: Eric Wong <normalperson@yhbt.net>
2212
- Date: Tue Jun 7 13:54:18 2011 -0700
2213
-
2214
- configurator: add :ipv6only directive
2215
-
2216
- Enabling this flag for an IPv6 TCP listener allows users to
2217
- specify IPv6-only listeners regardless of the OS default.
2218
- This should be interest to Rainbows! users.
2219
-
2220
- commit 0dc56fd03ea478ae054e3d0398703f43e017723b
2221
- Author: Eric Wong <normalperson@yhbt.net>
2222
- Date: Tue Jun 7 09:56:30 2011 -0700
2223
-
2224
- build: ensure gem and tgz targets build manpages
2225
-
2226
- Original patch by Hongli Lai <hongli@phusion.nl>:
2227
-
2228
- > >From bfefc2cf0efb0913a42862886363b3140dcdbb2a Mon Sep 17 00:00:00 2001
2229
- > From: Hongli Lai (Phusion) <hongli@phusion.nl>
2230
- > Date: Mon, 6 Jun 2011 13:39:00 +0200
2231
- > Subject: [PATCH] Ensure that 'make gem' builds the documentation too.
2232
- >
2233
- > If autogenerated documentation files, like man pages, don't exist then
2234
- > 'make gem' will fail, complaining that some files are not found. By
2235
- > depending the 'gem' target on the 'doc' target we ensure that 'make gem'
2236
- > always works.
2237
- >
2238
- > Signed-off-by: Hongli Lai (Phusion) <hongli@phusion.nl>
2239
-
2240
- ref: http://mid.gmane.org/4DED0EE2.7040400@phusion.nl
2241
-
2242
- commit 6eefc641c84eaa86cb2be4a2b1983b15efcbfae1
2243
- Author: Eric Wong <normalperson@yhbt.net>
2244
- Date: Tue Jun 7 09:38:34 2011 -0700
2245
-
2246
- examples/nginx.conf: better wording for ipv6only comment
2247
-
2248
- Oops.
2249
-
2250
- commit 32b340b88915ec945ebdbfa11b7da242860a6f44
2251
- Author: Eric Wong <normalperson@yhbt.net>
2252
- Date: Mon Jun 6 19:15:36 2011 -0700
2253
-
2254
- examples/nginx.conf: add ipv6only comment
2255
-
2256
- IPv4-mapped-IPv6 addresses are fugly.
2257
-
2258
- commit f4b9c1cb92711a62ae047368d7694c5050d27f2c
2259
- Author: Eric Wong <normalperson@yhbt.net>
2260
- Date: Mon Jun 6 10:00:36 2011 -0700
2261
-
2262
- Documentation: remove --sanitize-html for pandoc
2263
-
2264
- pandoc 1.8 no longer has this.
2265
-
2266
- commit 8e8781aa7002079ad066c11d271b98fc29f225dd
2267
- Author: Hongli Lai (Phusion) <hongli@phusion.nl>
2268
- Date: Mon Jun 6 13:36:57 2011 +0200
2269
-
2270
- Document the method for building the Unicorn gem.
2271
-
2272
- Signed-off-by: Hongli Lai (Phusion) <hongli@phusion.nl>
2273
-
2274
- commit 6e550cabdafd2cb0fcd1617f8815a732e79af670
2275
- Author: Eric Wong <normalperson@yhbt.net>
2276
- Date: Mon May 23 23:59:53 2011 +0000
2277
-
2278
- isolate_for_tests: use rake 0.8.7
2279
-
2280
- Rails 3.0.0 can't use Rake 0.9.0 it seems.
2281
-
2282
- commit 3e8971f3998249c58c9958815e0f17a04256ef9f
2283
- Author: Eric Wong <normalperson@yhbt.net>
2284
- Date: Mon May 23 23:59:31 2011 +0000
2285
-
2286
- gemspec: use latest Isolate (3.1)
2287
-
2288
- It's required for RubyGems 1.8.x
2289
-
2290
- commit 67e1fa9f9535ad009d538b8189bb3bdec0e5f79c
2291
- Author: Eric Wong <normalperson@yhbt.net>
2292
- Date: Mon May 23 21:53:19 2011 +0000
2293
-
2294
- http: call rb_str_modify before rb_str_resize
2295
-
2296
- Ruby 1.9.3dev (trunk) requires it if the string size
2297
- is unchanged.
2298
-
2299
- commit 1b31c40997ff8b932a457275e9a2f219de1d32c8
2300
- Author: Eric Wong <normalperson@yhbt.net>
2301
- Date: Mon May 23 21:04:56 2011 +0000
2302
-
2303
- strip trailing and leading linear whitespace in headers
2304
-
2305
- RFC 2616, section 4.2:
2306
- > The field-content does not include any leading or trailing LWS:
2307
- > linear white space occurring before the first non-whitespace
2308
- > character of the field-value or after the last non-whitespace
2309
- > character of the field-value. Such leading or trailing LWS MAY be
2310
- > removed without changing the semantics of the field value. Any LWS
2311
- > that occurs between field-content MAY be replaced with a single SP
2312
- > before interpreting the field value or forwarding the message
2313
- > downstream.
2314
-
2315
- commit 947704e3f8e67b8262815838e87b331802c7ba67
2316
- Author: Eric Wong <normalperson@yhbt.net>
2317
- Date: Mon May 23 18:22:44 2011 +0000
2318
-
2319
- doc: add Links page to help folks find relevant info
2320
-
2321
- Older announcements on our mailing list could be harder
2322
- to find.
2323
-
2324
- commit 66be289901508d5a6ed092db81ec96815c42d21d
2325
- Author: Eric Wong <normalperson@yhbt.net>
2326
- Date: Mon May 23 18:21:50 2011 +0000
2327
-
2328
- GNUmakefile: locale-independent grep invocation
2329
-
2330
- Otherwise it could casefold and we don't want that.
2331
-
2332
- commit c20077db941cc969fb3721c7527d37a99367f220
2333
- Author: Eric Wong <normalperson@yhbt.net>
2334
- Date: Sun May 8 02:39:42 2011 +0000
2335
-
2336
- doc: PHILOSOPHY: formatting fixes
2337
-
2338
- No need to list things inside preformatted text
2339
-
2340
- commit 77a951c5da518dda471282635c98f3b572ca15db
2341
- Author: Eric Wong <normalperson@yhbt.net>
2342
- Date: Thu May 5 16:42:26 2011 -0700
2343
-
2344
- http_parser: add max_header_len accessor
2345
-
2346
- Rainbows! wants to be able to lower this eventually...
2347
-
2348
- commit 733cb68e444a6f324bb1ffda3839da98ef010c74
2349
- Author: Eric Wong <normalperson@yhbt.net>
2350
- Date: Thu May 5 16:40:42 2011 -0700
2351
-
2352
- t0002-parser-error: fix race conditions
2353
-
2354
- "wait" needs to be done in the outside shell because
2355
- the subshell could still be exiting when we grep.
2356
-
2357
- commit 39ffd5590e4b5d2114215854deec848f849e9e87
2358
- Author: Eric Wong <normalperson@yhbt.net>
2359
- Date: Wed May 4 17:59:48 2011 -0700
2360
-
2361
- doc: remove redundant "of" typo
2362
-
2363
- commit 1b0ee5826ef146a3e2647c40f3bc929d51d1b442
2364
- Author: Eric Wong <normalperson@yhbt.net>
2365
- Date: Wed May 4 17:04:51 2011 -0700
2366
-
2367
- http_parser: new add_parse method
2368
-
2369
- Combines the following sequence:
2370
-
2371
- http_parser.buf << socket.readpartial(0x4000)
2372
- http_parser.parse
2373
-
2374
- Into:
2375
-
2376
- http_parser.add_parse(socket.readpartial(0x4000))
2377
-
2378
- It was too damn redundant otherwise...
2379
-
2380
- commit f81aa02448b615c4d5fc4f6544c53289dae9d2ec
2381
- Author: Eric Wong <normalperson@yhbt.net>
2382
- Date: Wed May 4 16:41:36 2011 -0700
2383
-
2384
- return 414 for URI length violations
2385
-
2386
- There's an HTTP status code allocated for it in
2387
- <http://www.iana.org/assignments/http-status-codes>, so
2388
- return that instead of 400.
2389
-
2390
- commit 3a76dc40dda91a3804276fcc73260bb2a529c034
2391
- Author: Eric Wong <normalperson@yhbt.net>
2392
- Date: Sat Apr 30 11:09:32 2011 -0700
2393
-
2394
- Sandbox: update doc for latest Bundler versions
2395
-
2396
- Bundler 1.0.x is much improved :)
2397
-
2398
- commit f848f632a81cf8ebc977592cbf9a45d84a69f306
2399
- Author: Eric Wong <normalperson@yhbt.net>
2400
- Date: Sat Apr 30 06:34:52 2011 +0000
2401
-
2402
- unicorn 3.6.2 - fix Unicorn::OobGC module
2403
-
2404
- The optional Unicorn::OobGC module is reimplemented to fix
2405
- breakage that appeared in v3.3.1. There are also minor
2406
- documentation updates, but no code changes as of 3.6.1 for
2407
- non-OobGC users.
2408
-
2409
- There is also a v1.1.7 release to fix the same OobGC breakage
2410
- that appeared for 1.1.x users in the v1.1.6 release.
2411
-
2412
- commit 1588c299703754e52b9f36219c21e13204734e6c
2413
- Merge: fe47a17 0874125
2414
- Author: Eric Wong <normalperson@yhbt.net>
2415
- Date: Sat Apr 30 06:33:53 2011 +0000
2416
-
2417
- Merge commit 'v1.1.7'
2418
-
2419
- * commit 'v1.1.7':
2420
- unicorn 1.1.7 - major fixes to minor components
2421
- oob_gc: reimplement to fix breakage and add tests
2422
- exec_cgi: handle Status header in CGI response
2423
- unicorn 1.1.6 - one minor, esoteric bugfix
2424
- close client socket after closing response body
2425
-
2426
- commit fe47a179468799bbbb893b339cbb0d4fedf29c2a
2427
- Author: Eric Wong <normalperson@yhbt.net>
2428
- Date: Fri Apr 29 23:31:35 2011 -0700
2429
-
2430
- TUNING: more minor doc updates
2431
-
2432
- commit 0874125ce56d52cee0f634712e69d1387eadfae1
2433
- Author: Eric Wong <normalperson@yhbt.net>
2434
- Date: Sat Apr 30 04:56:28 2011 +0000
2435
-
2436
- unicorn 1.1.7 - major fixes to minor components
2437
-
2438
- No changes to the core code, so this release only affects users
2439
- of the Unicorn::OobGC and Unicorn::ExecCGI modules.
2440
- Unicorn::OobGC was totally broken by the fix in the v1.1.6
2441
- release and is now reimplemented. Unicorn::ExecCGI (which
2442
- hardly anybody uses) now returns proper HTTP status codes.
2443
-
2444
- commit fe0dd93cd9cb97b46f6cfb4b1e370e38717a93f0
2445
- Author: Eric Wong <normalperson@yhbt.net>
2446
- Date: Fri Apr 29 15:48:35 2011 -0700
2447
-
2448
- oob_gc: reimplement to fix breakage and add tests
2449
-
2450
- This was broken since v3.3.1[1] and v1.1.6[2] since nginx relies on
2451
- a closed socket (and not Content-Length/Transfer-Encoding) to
2452
- detect a response completion. We have to close the client
2453
- socket before invoking GC to ensure the client sees the response
2454
- in a timely manner.
2455
-
2456
- [1] - commit b72a86f66c722d56a6d77ed1d2779ace6ad103ed
2457
- [2] - commit b7a0074284d33352bb9e732c660b29162f34bf0e
2458
-
2459
- (cherry picked from commit faeb3223636c39ea8df4017dc9a9d39ac649b26d)
2460
-
2461
- Conflicts:
2462
-
2463
- examples/big_app_gc.rb
2464
- lib/unicorn/oob_gc.rb
2465
-
2466
- commit 02a116c0d94a60a64abf8ad2465132e8194dd62a
2467
- Author: Eric Wong <normalperson@yhbt.net>
2468
- Date: Fri Apr 29 16:01:35 2011 -0700
2469
-
2470
- TUNING: document worker_processes tuning
2471
-
2472
- It seems people are still confused about it...
2473
-
2474
- commit faeb3223636c39ea8df4017dc9a9d39ac649b26d
2475
- Author: Eric Wong <normalperson@yhbt.net>
2476
- Date: Fri Apr 29 15:48:35 2011 -0700
2477
-
2478
- oob_gc: reimplement to fix breakage and add tests
2479
-
2480
- This was broken since v3.3.1[1] since nginx relies on a closed
2481
- socket (and not Content-Length/Transfer-Encoding) to detect
2482
- a response completion. We have to close the client socket
2483
- before invoking GC to ensure the client sees the response
2484
- in a timely manner.
2485
-
2486
- [1] - commit b72a86f66c722d56a6d77ed1d2779ace6ad103ed
2487
-
2488
- commit ce4995a4daf1e4da7034dc87fd218a283c405410
2489
- Author: Eric Wong <normalperson@yhbt.net>
2490
- Date: Fri Apr 29 15:30:07 2011 -0700
2491
-
2492
- TUNING: original sentence was incomplete
2493
-
2494
- commit 843d30120139dc372aca6c1773ac7699b6ee6345
2495
- Author: Eric Wong <normalperson@yhbt.net>
2496
- Date: Fri Apr 29 12:21:38 2011 -0700
2497
-
2498
- examples/big_app_gc: fix comment
2499
-
2500
- Oops, comments should match the latest code
2501
-
2502
- commit d4f70c45029ab1c6aba4bc2d69283ae43e46d9ff
2503
- Author: Eric Wong <normalperson@yhbt.net>
2504
- Date: Fri Apr 29 12:18:59 2011 -0700
2505
-
2506
- examples/big_app_gc: update this example
2507
-
2508
- OobGC is actually broken with nginx these days since
2509
- we needed to preserve the env for body.close...
2510
-
2511
- commit eaf72275e36560e567efc9597d929e02dc2f577d
2512
- Author: Eric Wong <normalperson@yhbt.net>
2513
- Date: Wed Apr 27 13:49:14 2011 -0700
2514
-
2515
- configurator: attempt to clarify :tcp_nopush/:tcp_nodelay
2516
-
2517
- These options will probably be more important as interest in
2518
- streaming responses in Rails 3.1 develops.
2519
-
2520
- I consider the respective defaults for Unicorn (designed to run
2521
- behind nginx) and Rainbows! (designed to run standalone) to be
2522
- the best choices in their respective environments.
2523
-
2524
- commit 37c491dcc23d445521229dbe902f02833f2a0f4c
2525
- Author: Eric Wong <normalperson@yhbt.net>
2526
- Date: Wed Apr 27 13:13:24 2011 -0700
2527
-
2528
- examples/nginx.conf: clarify proxy_buffering for Rails 3.1
2529
-
2530
- I've tested with nginx 1.0.0 and confirmed "proxy_buffering off;"
2531
- can cause Unicorn to block on a slow client reading a
2532
- large response. While there's a potential (client-visible)
2533
- performance improvement with Rails 3.1 streaming responses, it
2534
- can also hurt the server with slow clients.
2535
-
2536
- Rainbows! with (ThreadSpawn or ThreadPool) is probably the best
2537
- way to do streaming responses efficiently from all angles (from
2538
- a server, client and programmer time perspective).
2539
-
2540
- commit 1b3befbadb99c83c24109f68b719276f0051c7fb
2541
- Author: Eric Wong <normalperson@yhbt.net>
2542
- Date: Tue Apr 26 16:04:19 2011 -0700
2543
-
2544
- unicorn 3.6.1 - fix OpenSSL PRNG workaround
2545
-
2546
- Our attempt in 3.6.0 to workaround a problem with the OpenSSL
2547
- PRNG actually made the problem worse. This release corrects the
2548
- workaround to properly reseed the OpenSSL PRNG after forking.
2549
-
2550
- commit 34f7dbd1b7e087bc8c86029496fd8daa7dc58441
2551
- Author: Eric Wong <normalperson@yhbt.net>
2552
- Date: Tue Apr 26 16:01:31 2011 -0700
2553
-
2554
- properly reseed OpenSSL::Random after forking
2555
-
2556
- Using the return value of Kernel#srand actually made the
2557
- problem worse. Using the value of Kernel#rand is required
2558
- to actually get a random value to seed the OpenSSL PRNG.
2559
-
2560
- Thanks to ghazel for the bug report!
2561
-
2562
- commit 2aabf90ca53b31edef6c2b63006c33374840c816
2563
- Author: Eric Wong <normalperson@yhbt.net>
2564
- Date: Thu Apr 21 06:16:27 2011 +0000
2565
-
2566
- unicorn 3.6.0 - small fixes, PRNG workarounds
2567
-
2568
- Mainly small fixes, improvements, and workarounds for fork() issues
2569
- with pseudo-random number generators shipped with Ruby (Kernel#rand,
2570
- OpenSSL::Random (used by SecureRandom and also by Rails).
2571
-
2572
- The PRNG issues are documented in depth here (and links to Ruby Redmine):
2573
-
2574
- http://bogomips.org/unicorn.git/commit?id=1107ede7
2575
- http://bogomips.org/unicorn.git/commit?id=b3241621
2576
-
2577
- If you're too lazy to upgrade, you can just do this in your after_fork
2578
- hooks:
2579
-
2580
- after_fork do |server,worker|
2581
- tmp = srand
2582
- OpenSSL::Random.seed(tmp.to_s) if defined?(OpenSSL::Random)
2583
- end
2584
-
2585
- There are also small log reopening (SIGUSR1) improvements:
2586
-
2587
- * relative paths may also be reopened, there's a small chance this
2588
- will break with a handful of setups, but unlikely. This should
2589
- make configuration easier especially since the "working_directory"
2590
- configurator directive exists. Brought up by Matthew Kocher:
2591
- http://thread.gmane.org/gmane.comp.lang.ruby.unicorn.general/900
2592
-
2593
- * workers will just die (and restart) if log reopening fails for
2594
- any reason (including user error). This is to workaround the issue
2595
- reported by Emmanuel Gomez:
2596
- http://thread.gmane.org/gmane.comp.lang.ruby.unicorn.general/906
2597
-
2598
- commit 4f7f3bbb973c8f2bb4b189592158a0682ea2a625
2599
- Author: Eric Wong <normalperson@yhbt.net>
2600
- Date: Thu Apr 21 06:23:21 2011 +0000
2601
-
2602
- http_server: fix Rainbows! compatibility
2603
-
2604
- Older Rainbows! redefines the ready_pipe= accessor method
2605
- to call internal after_fork hooks.
2606
-
2607
- commit c6c9cae960bd8cbfa2feb801ca7079f6626b436b
2608
- Author: Eric Wong <normalperson@yhbt.net>
2609
- Date: Wed Apr 20 16:02:51 2011 +0000
2610
-
2611
- KNOWN_ISSUES: document PRNG changes in 3.6.0
2612
-
2613
- commit 6411add3f1a5aae5f2e0dcd73cd842500d21e9fd
2614
- Author: Eric Wong <normalperson@yhbt.net>
2615
- Date: Mon Apr 18 15:53:08 2011 -0700
2616
-
2617
- documentation cleanup/reduction
2618
-
2619
- Don't clutter up our RDoc/website with things that users
2620
- of Unicorn don't need to see. This should make user-relevant
2621
- documentation easier to find, especially since Unicorn is
2622
- NOT intended to be an API.
2623
-
2624
- commit 1107ede716461049033d6a5b311e14c742c9363a
2625
- Author: Eric Wong <normalperson@yhbt.net>
2626
- Date: Mon Apr 18 15:34:29 2011 -0700
2627
-
2628
- reseed OpenSSL PRNG upon fork() of workers
2629
-
2630
- OpenSSL seeds its PRNG with the process ID, so if a process ID
2631
- is recycled, there's a chance of indepedent workers getting
2632
- repeated PRNG sequences over a long time period iff the same
2633
- PID is used.
2634
-
2635
- This only affects deployments that meet both of the following
2636
- conditions:
2637
-
2638
- 1) OpenSSL::Random.random_bytes is called before forking
2639
- 2) worker (but not master) processes are die unexpectedly
2640
-
2641
- The SecureRandom module in Ruby (and Rails) uses the OpenSSL
2642
- PRNG if available. SecureRandom is used by Rails and called
2643
- when the application is loaded, so most Rails apps with
2644
- frequently dying worker processes are affected.
2645
-
2646
- Of course dying worker processes are bad and entirely the
2647
- fault of bad application/library code, not the fault of
2648
- Unicorn.
2649
-
2650
- Thanks for Alexander Dymo for reporting this.
2651
-
2652
- ref: http://redmine.ruby-lang.org/issues/4579
2653
-
2654
- commit b32416211ef30e958ec38c8c99833161cd476dd4
2655
- Author: Eric Wong <normalperson@yhbt.net>
2656
- Date: Mon Apr 18 22:21:58 2011 +0000
2657
-
2658
- reinitialize PRNG for latest Ruby 1.8.7 releases
2659
-
2660
- The current versions of Ruby 1.8 do not reseed the PRNG after
2661
- forking, so we'll work around that by calling Kernel#srand.
2662
-
2663
- ref: http://redmine.ruby-lang.org/issues/show/4338
2664
-
2665
- commit 3c8f21a4257578e9cdc4781dd21a6a572e25ca54
2666
- Author: Eric Wong <normalperson@yhbt.net>
2667
- Date: Wed Apr 13 08:05:51 2011 +0000
2668
-
2669
- fix some 1.9.3dev warnings
2670
-
2671
- commit 1355d262288352c2ced67cefc2301cee79bec0dd
2672
- Author: Eric Wong <normalperson@yhbt.net>
2673
- Date: Wed Apr 13 07:55:11 2011 +0000
2674
-
2675
- configurator: fix broken local variable
2676
-
2677
- Oops, changing a method definition for RDoc means code
2678
- needs to be updated, too :x
2679
-
2680
- commit 30ece1c7cc66b2fc816b1361e498ca0d4a554a78
2681
- Author: Eric Wong <normalperson@yhbt.net>
2682
- Date: Wed Apr 13 07:43:05 2011 +0000
2683
-
2684
- GNUmakefile: s/Config/RbConfig/
2685
-
2686
- "Config" is deprecated and warns under 1.9.3dev
2687
-
2688
- commit cabbc6ce06487619431af102378aefa08d55f9f1
2689
- Author: Eric Wong <normalperson@yhbt.net>
2690
- Date: Wed Apr 13 07:34:31 2011 +0000
2691
-
2692
- http_server: workers die on log reopen failures
2693
-
2694
- They should then recover and inherit writable descriptors
2695
- from the master when it respawns.
2696
-
2697
- commit c1322a721d9039f54da97cf50de49f2affbfff37
2698
- Author: Eric Wong <normalperson@yhbt.net>
2699
- Date: Wed Apr 13 05:41:07 2011 +0000
2700
-
2701
- http_parser: remove RDoc
2702
-
2703
- It's not needed for users, so avoid confusing them.
2704
- Unicorn itself is not intended to be an API, it just
2705
- hosts Rack applications.
2706
-
2707
- commit 8c359f50ce8b20dc3d72fe655db9d93c4a8ee7d5
2708
- Author: Eric Wong <normalperson@yhbt.net>
2709
- Date: Wed Apr 13 01:43:31 2011 +0000
2710
-
2711
- configurator: miscellaneous RDoc improvements
2712
-
2713
- Mainly formatting and such, but some wording changes.
2714
-
2715
- commit 2d1a4fbe37ebb0f229edbaefd392bdd8b6865590
2716
- Author: Eric Wong <normalperson@yhbt.net>
2717
- Date: Wed Apr 13 01:11:29 2011 +0000
2718
-
2719
- worker: improve RDoc, point users to Configurator#user
2720
-
2721
- commit 46cc05089ea34b823454f790092f386f22d3adb1
2722
- Author: Eric Wong <normalperson@yhbt.net>
2723
- Date: Wed Apr 13 01:04:19 2011 +0000
2724
-
2725
- configurator: remove outdated user example in after_fork
2726
-
2727
- Configurator itself supports user at the top-level.
2728
-
2729
- commit c4d3cd7d7b32ed133e25e3740c8e7a3493592eec
2730
- Author: Emmanuel Gomez <emmanuel.gomez@gmail.com>
2731
- Date: Tue Apr 12 15:36:36 2011 -0700
2732
-
2733
- Document "user" directive in example unicorn conf
2734
-
2735
- commit 6647dcb3afa4c0b16c5fef5bfdf88292e6adf6ca
2736
- Author: Eric Wong <normalperson@yhbt.net>
2737
- Date: Fri Apr 1 16:09:03 2011 -0700
2738
-
2739
- util: allow relative paths to be rotated
2740
-
2741
- Users keep both pieces if it's broken :)
2742
-
2743
- commit ebcc5b45adfb1d04af98356d867e9221ecdc9b70
2744
- Author: Eric Wong <normalperson@yhbt.net>
2745
- Date: Fri Apr 1 15:48:30 2011 -0700
2746
-
2747
- bump dependencies for testing
2748
-
2749
- No need to use an ancient Rack now that we've dropped Rails
2750
- 2.3.x tests. We need to remember that Rack 1.1.0 doesn't
2751
- support input#size.
2752
-
2753
- commit e5bf7b7207d69daf1c3537797aeeab2642f19514
2754
- Author: Eric Wong <normalperson@yhbt.net>
2755
- Date: Fri Apr 1 15:44:22 2011 -0700
2756
-
2757
- drop Rails 2.3.x tests
2758
-
2759
- They were transitionary releases and the logic to deal with them
2760
- and Rack versioning was too much overhead.
2761
-
2762
- commit c1ebb313735a280582d87c1ba44619aa47e00b06
2763
- Author: Eric Wong <normalperson@yhbt.net>
2764
- Date: Tue Mar 29 09:47:26 2011 -0700
2765
-
2766
- add examples/logrotate.conf
2767
-
2768
- logrotate is the de facto tool for logrotation, so an
2769
- example config for highlighting important parts are in order.
2770
-
2771
- Since our USR1 signal handling is part of the crusade against
2772
- the slow and lossy "copytruncate" option, be sure to
2773
- emphasize that :)
2774
-
2775
- commit ede28dc59562c862ff4641ed42a0ef357880d0f5
2776
- Author: Eric Wong <normalperson@yhbt.net>
2777
- Date: Sun Mar 27 20:35:16 2011 -0700
2778
-
2779
- tmpio: do not redefine size method under 1.9.2+
2780
-
2781
- File#size is available in 1.9.2
2782
-
2783
- commit 9de69c47e0a261bc88ca40e03562b7324baaf0cf
2784
- Author: Eric Wong <normalperson@yhbt.net>
2785
- Date: Tue Mar 22 17:57:03 2011 -0700
2786
-
2787
- DESIGN: fix redundant wording
2788
-
2789
- "P" in HTTP is already "protocol"
2790
-
2791
- commit 5da78214be9518879ee96345d8184913853fe890
2792
- Author: Eric Wong <normalperson@yhbt.net>
2793
- Date: Tue Mar 22 17:48:30 2011 -0700
2794
-
2795
- README: s/Gemcutter/RubyGems.org/
2796
-
2797
- Gemcutter is the old name
2798
-
2799
- commit d1c9aa300c0cbda272f197b734b3e895959ae3e3
2800
- Author: Eric Wong <normalperson@yhbt.net>
2801
- Date: Tue Mar 15 12:19:30 2011 +0000
2802
-
2803
- unicorn 3.5.0 - very minor improvements
2804
-
2805
- A small set of small changes but it's been more than a month
2806
- since our last release. There are minor memory usage and
2807
- efficiently improvements (for graceful shutdowns). MRI 1.8.7
2808
- users on *BSD should be sure they're using the latest patchlevel
2809
- (or upgrade to 1.9.x) because we no longer workaround their
2810
- broken stdio (that's MRI's job :)
2811
-
2812
- commit e6b6782030d8593006b4b7cace866cf42dd38d51
2813
- Author: Eric Wong <normalperson@yhbt.net>
2814
- Date: Tue Mar 8 06:59:53 2011 +0000
2815
-
2816
- gemspec: update kgio dependency to 2.3.2
2817
-
2818
- People reinstalling would've pulled it in anyways, but
2819
- 2.3.2 is the latest and has no known issues.
2820
-
2821
- commit 1594937132a5d9b7f1dc24cc47e3a27679ac9950
2822
- Author: Eric Wong <normalperson@yhbt.net>
2823
- Date: Tue Mar 8 06:59:08 2011 +0000
2824
-
2825
- gemspec: no need for require_paths
2826
-
2827
- commit cc7e65a1aa1bacc9658a687140011e999be6e3e7
2828
- Author: Eric Wong <normalperson@yhbt.net>
2829
- Date: Fri Feb 25 17:54:24 2011 +0000
2830
-
2831
- tee_input: remove old *BSD stdio workaround
2832
-
2833
- Ruby 1.8.* users should get the latest Ruby 1.8.7 anyways since
2834
- they contain critical bugfixes. We don't keep workarounds
2835
- forever since the root problem is fixed/worked-around in
2836
- upstream and people have had more than a year to upgrade Ruby.
2837
-
2838
- commit 2b6dd7653211d3d6b4cb6a46eec11bbde8cab789
2839
- Author: Eric Wong <normalperson@yhbt.net>
2840
- Date: Fri Feb 18 17:02:08 2011 -0800
2841
-
2842
- clear listeners array on SIGQUIT
2843
-
2844
- We don't want to repeatedly reclose the same IOs
2845
- and keep raising exceptions this way.
2846
-
2847
- commit d3ebd339990b0586a5993232302235c26cdb33d9
2848
- Author: Eric Wong <normalperson@yhbt.net>
2849
- Date: Wed Feb 16 10:33:20 2011 -0800
2850
-
2851
- README: clarify the versions of "Ruby license"
2852
-
2853
- Ruby 1.9.3dev is now using the 2-clause BSD License, not the
2854
- GPLv2. Do not mislead people into thinking we will switch to
2855
- any BSD License, we won't.
2856
-
2857
- commit 4cfb64f10784498b9625bbbd3364231710bc7c36
2858
- Author: Eric Wong <normalperson@yhbt.net>
2859
- Date: Thu Feb 10 13:41:32 2011 -0800
2860
-
2861
- Revert "test_helper: simplify random port binding"
2862
-
2863
- This causes conflicts with ports clients may use in
2864
- the ephemeral range since those do not hold FS locks.
2865
-
2866
- This reverts commit e597e594ad88dc02d70f7d3521d0d3bdc23739bb.
2867
-
2868
- Conflicts:
2869
-
2870
- test/test_helper.rb
2871
-
2872
- commit 6dd90cb902f43b32b0db204484d5e3df79ec0d0c
2873
- Author: Eric Wong <normalperson@yhbt.net>
2874
- Date: Thu Feb 10 13:34:58 2011 -0800
2875
-
2876
- remove unnecessary &block usage
2877
-
2878
- They needlessly allocate Proc objects
2879
-
2880
- commit 1fd1234ca5ba3d84d2182c38b37322bd55f08882
2881
- Author: Eric Wong <normalperson@yhbt.net>
2882
- Date: Mon Feb 7 16:09:53 2011 -0800
2883
-
2884
- test_helper: avoid FD leakage/waste
2885
-
2886
- No need to unnecessarily leave file descriptor open.
2887
-
2888
- commit 6ffc294aac4735127ac9455266623aaa3603e9c1
2889
- Author: Eric Wong <normalperson@yhbt.net>
2890
- Date: Fri Feb 4 13:06:30 2011 -0800
2891
-
2892
- unicorn 3.4.0 - for people with very big LANs
2893
-
2894
- * IPv6 support in the HTTP hostname parser and configuration
2895
- language. Configurator syntax for "listen" addresses should
2896
- be the same as nginx. Even though we support IPv6, we will
2897
- never support non-LAN/localhost clients connecting to Unicorn.
2898
-
2899
- * TCP_NOPUSH/TCP_CORK is enabled by default to optimize
2900
- for bandwidth usage and avoid unnecessary wakeups in nginx.
2901
-
2902
- * Updated KNOWN_ISSUES document for bugs in recent Ruby 1.8.7
2903
- (RNG needs reset after fork) and nginx+sendfile()+FreeBSD 8.
2904
-
2905
- * examples/nginx.conf updated for modern stable versions of nginx.
2906
-
2907
- * "Status" in headers no longer ignored in the response,
2908
- Rack::Lint already enforces this so we don't duplicate
2909
- the work.
2910
-
2911
- * All tests pass under Ruby 1.9.3dev
2912
-
2913
- * various bugfixes in the (mostly unused) ExecCGI class that
2914
- powers http://bogomips.org/unicorn.git
2915
-
2916
- commit 3df8a197320b8a9e8a6413dcd04613db0558d90a
2917
- Author: Eric Wong <normalperson@yhbt.net>
2918
- Date: Fri Feb 4 13:04:39 2011 -0800
2919
-
2920
- bump dependency on kgio
2921
-
2922
- This is needed for IPv6 support, and 2.2.0 is nicer
2923
- all around for Rainbows! users. Updates wrongdoc
2924
- while we're at it, too.
2925
-
2926
- commit 1045faa0f9e94b13ee0281b7968b72d6f50dd5bf
2927
- Author: Eric Wong <normalperson@yhbt.net>
2928
- Date: Thu Feb 3 13:53:18 2011 -0800
2929
-
2930
- test/unit: fix tests under Ruby 1.9.3dev
2931
-
2932
- Ugh, one day I'll clean them up, one day...
2933
-
2934
- commit 9e7a8114fb0fcc56b475d17f158eaa5b7f1f7bdd
2935
- Author: Eric Wong <normalperson@yhbt.net>
2936
- Date: Wed Feb 2 17:37:22 2011 -0800
2937
-
2938
- Fix Ruby 1.9.3dev warnings
2939
-
2940
- for i in `git ls-files '*.rb'`; do ruby -w -c $i; done
2941
-
2942
- commit e597e594ad88dc02d70f7d3521d0d3bdc23739bb
2943
- Author: Eric Wong <normalperson@yhbt.net>
2944
- Date: Wed Feb 2 16:54:07 2011 -0800
2945
-
2946
- test_helper: simplify random port binding
2947
-
2948
- Duh...
2949
-
2950
- commit 314680327b95c0dc5e11be45a6343ca2a18ee447
2951
- Author: Eric Wong <normalperson@yhbt.net>
2952
- Date: Wed Feb 2 16:27:30 2011 -0800
2953
-
2954
- socket_helper: cleanup leftover debugging statement
2955
-
2956
- Oops! Ugh, not my day...
2957
-
2958
- commit e0160a18ef5c4592d1ac5ff24ba8ae0fd703057c
2959
- Author: Eric Wong <normalperson@yhbt.net>
2960
- Date: Wed Feb 2 15:34:33 2011 -0800
2961
-
2962
- socket_helper: export tcp_name as a module_function
2963
-
2964
- Oops!
2965
-
2966
- commit 87fd86ef22b6b80fa75dd8e50f53a4e62e8339f7
2967
- Author: Eric Wong <normalperson@yhbt.net>
2968
- Date: Wed Feb 2 15:22:02 2011 -0800
2969
-
2970
- allow binding on IPv6 sockets with listen "[#{addr}]:#{port}"
2971
-
2972
- This is much like how nginx does it, except we always require a
2973
- port when explicitly binding to IPv6 using the "listen"
2974
- directive. This also adds support to listen with an
2975
- address-only, which can be useful to Rainbows! users.
2976
-
2977
- commit d140e7b1ff44b06bc54c2b790d06e9c7325503fe
2978
- Author: Eric Wong <normalperson@yhbt.net>
2979
- Date: Wed Feb 2 14:45:57 2011 -0800
2980
-
2981
- http: parser handles IPv6 bracketed IP hostnames
2982
-
2983
- Just in case we have people that don't use DNS, we can support
2984
- folks who enter ugly IPv6 addresses...
2985
-
2986
- IPv6 uses brackets around the address to avoid confusing
2987
- the colons used in the address with the colon used to denote
2988
- the TCP port number in URIs.
2989
-
2990
- commit 24f8ef5f385e38954a5582fb2e8cd9d12fbf7d20
2991
- Author: Eric Wong <normalperson@yhbt.net>
2992
- Date: Mon Jan 31 16:14:46 2011 -0800
2993
-
2994
- force socket options to defaults if unspecified
2995
-
2996
- This reduces surprise when people (correctly) believe
2997
- removing an option from the config file will return
2998
- things back to our internal defaults.
2999
-
3000
- commit c28e2610cfc70e89a0ffabe18356d148afe98bfc
3001
- Author: Eric Wong <normalperson@yhbt.net>
3002
- Date: Mon Jan 31 15:51:30 2011 -0800
3003
-
3004
- enable TCP_NOPUSH/TCP_CORK by default
3005
-
3006
- It's actually harmless since Unicorn only supports "fast"
3007
- applications that do not trickle, and we don't do keepalive so
3008
- we'll always flush-on-close. This should reduce wakeups on the
3009
- nginx proxy server if nginx is over TCP. Mongrel 1.x had
3010
- TCP_CORK enabled by default, too.
3011
-
3012
- commit e3420e0ae1f3c38f125010134d2cdeb22c6fa64e
3013
- Author: Eric Wong <normalperson@yhbt.net>
3014
- Date: Mon Jan 31 15:50:37 2011 -0800
3015
-
3016
- test_upload: check size in server
3017
-
3018
- The client may not get a proper response with TCP_CORK enabled
3019
-
3020
- commit f4caf6b6bdea902abaadd3c04b2af94f056c4ff1
3021
- Author: Eric Wong <normalperson@yhbt.net>
3022
- Date: Fri Jan 28 18:11:26 2011 +0000
3023
-
3024
- KNOWN_ISSUES: document broken RNG+fork in newer Ruby 1.8
3025
-
3026
- Reported by: ghazel@gmail.com
3027
-
3028
- ref: <AANLkTimTpPATTpkoD2EYA2eM1+5OzCN=WxnCygQmJdhn@mail.gmail.com>
3029
-
3030
- commit 09afcf2ce9fc89d77b6b282bbf00a78c73741a4b
3031
- Author: Eric Wong <normalperson@yhbt.net>
3032
- Date: Tue Jan 25 13:58:29 2011 -0800
3033
-
3034
- examples/nginx.conf: use try_files directive
3035
-
3036
- This feature is in nginx 0.7.x and 0.8.x and optimized
3037
- better than the "if" directive in nginx.conf
3038
-
3039
- ref: http://wiki.nginx.org/Pitfalls
3040
- ref: http://wiki.nginx.org/IfIsEvil
3041
-
3042
- commit 1ca83b055375ab7e72d383ffd0f36f70c07d9e92
3043
- Author: Eric Wong <normalperson@yhbt.net>
3044
- Date: Tue Jan 25 13:56:39 2011 -0800
3045
-
3046
- examples/nginx: avoid unnecessary listen directive
3047
-
3048
- There's no need to use listen unless you use non-default port or
3049
- can enable "deferred" or "httpready" (which you usually want).
3050
-
3051
- commit fb1f33aecc7102fb5c10e27c65b9b27cf249415f
3052
- Author: Eric Wong <normalperson@yhbt.net>
3053
- Date: Tue Jan 25 13:42:53 2011 -0800
3054
-
3055
- KNOWN_ISSUES: split old stuff into its own section
3056
-
3057
- Ruby 1.9.1, Sinatra 0.3.x, and Rails 2.3.2 are not in
3058
- common use anymore (at least we don't think).
3059
-
3060
- commit 8ac0ae45a04f5f121f323c182403ef6eb0d8aa18
3061
- Author: Eric Wong <normalperson@yhbt.net>
3062
- Date: Tue Jan 25 13:30:21 2011 -0800
3063
-
3064
- KNOWN_ISSUES: FreeBSD 8 and sendfile can be buggy
3065
-
3066
- Reported by Alexey Bondar.
3067
-
3068
- commit d770d09dfd9e5d7148379c58cdf9a020cbdc63b6
3069
- Author: Eric Wong <normalperson@yhbt.net>
3070
- Date: Fri Jan 21 12:28:39 2011 -0800
3071
-
3072
- git.bogomips.org => bogomips.org
3073
-
3074
- bogomips.org is slimming down and losing URL weight :)
3075
-
3076
- commit d385bc4f3ed7b783b7414f5d34299bd2bf242fe6
3077
- Author: Eric Wong <normalperson@yhbt.net>
3078
- Date: Fri Jan 21 04:01:01 2011 +0000
3079
-
3080
- exec_cgi: handle Status header in CGI response
3081
-
3082
- We no longer blindly return 200 if the CGI returned another error
3083
- code. We also don't want two Status headers in our output since we
3084
- no longer filter it out.
3085
- (cherry picked from commit 6cca8e61c66c1c2a8ebe260813fa83e44530a768)
3086
-
3087
- commit 6cca8e61c66c1c2a8ebe260813fa83e44530a768
3088
- Author: Eric Wong <normalperson@yhbt.net>
3089
- Date: Fri Jan 21 04:01:01 2011 +0000
3090
-
3091
- exec_cgi: handle Status header in CGI response
3092
-
3093
- We no longer blindly return 200 if the CGI returned another error
3094
- code. We also don't want two Status headers in our output since we
3095
- no longer filter it out.
3096
-
3097
- commit c4d77de381c40cf315e6f84791e3fb634bc10675
3098
- Author: Eric Wong <normalperson@yhbt.net>
3099
- Date: Fri Jan 21 04:01:02 2011 +0000
3100
-
3101
- exec_cgi: make output compatible with IO.copy_stream
3102
-
3103
- Rainbows! can then use this to bypass luserspace given
3104
- the correct offset is set before hand and the file
3105
- is unlinked.
3106
-
3107
- commit 4150a398a48b9bca96aa623380161229ac0f8622
3108
- Author: Eric Wong <normalperson@yhbt.net>
3109
- Date: Wed Jan 19 19:10:25 2011 -0800
3110
-
3111
- configurator: undocument trust_x_forwarded_for
3112
-
3113
- This may not be supported in the future...
3114
-
3115
- commit ec400a537a0947796e108f3593721289661b49dc
3116
- Author: Eric Wong <normalperson@yhbt.net>
3117
- Date: Fri Jan 7 10:14:46 2011 -0800
3118
-
3119
- http_response: do not skip Status header set by app
3120
-
3121
- Rack::Lint already stops apps from using it. If a developer
3122
- insists on it, then users who inspect their HTTP headers can
3123
- point and laugh at them for not using Rack::Lint!
3124
-
3125
- commit 5ebd22a9d28fc96c69c09b695d99c1f173ce5a67
3126
- Author: Eric Wong <normalperson@yhbt.net>
3127
- Date: Thu Jan 6 15:46:56 2011 -0800
3128
-
3129
- unicorn 3.3.1 - one minor, esoteric bugfix
3130
-
3131
- We now close the client socket after closing the response body.
3132
- This does not affect most applications that run under Unicorn,
3133
- in fact, it may not affect any.
3134
-
3135
- There is also a new v1.1.6 release for users who do not use
3136
- kgio.
3137
-
3138
- commit 3587edb6e88ebe5c24cdde090ba8dd98de493d63
3139
- Author: Eric Wong <normalperson@yhbt.net>
3140
- Date: Thu Jan 6 15:40:54 2011 -0800
3141
-
3142
- unicorn 1.1.6 - one minor, esoteric bugfix
3143
-
3144
- We now close the client socket after closing the response body.
3145
- This does not affect most applications that run under Unicorn,
3146
- in fact, it may not affect any.
3147
-
3148
- commit b7a0074284d33352bb9e732c660b29162f34bf0e
3149
- Author: Eric Wong <normalperson@yhbt.net>
3150
- Date: Wed Jan 5 23:05:05 2011 -0800
3151
-
3152
- close client socket after closing response body
3153
-
3154
- Response bodies may capture the block passed to each
3155
- and save it for body.close, so don't close the socket
3156
- before we have a chance to call body.close
3157
-
3158
- (cherry picked from commit b72a86f66c722d56a6d77ed1d2779ace6ad103ed)
3159
-
3160
- Conflicts:
3161
-
3162
- lib/unicorn/http_server.rb
3163
- test/unit/test_response.rb
3164
-
3165
- commit b72a86f66c722d56a6d77ed1d2779ace6ad103ed
3166
- Author: Eric Wong <normalperson@yhbt.net>
3167
- Date: Wed Jan 5 22:39:03 2011 -0800
3168
-
3169
- close client socket after closing response body
3170
-
3171
- Response bodies may capture the block passed to each
3172
- and save it for body.close, so don't close the socket
3173
- before we have a chance to call body.close
3174
-
3175
- commit 1b69686fd28347eb5c071a9b76e2939bca424f04
3176
- Author: Eric Wong <normalperson@yhbt.net>
3177
- Date: Wed Jan 5 15:26:17 2011 -0800
3178
-
3179
- unicorn 3.3.0 - minor optimizations
3180
-
3181
- Certain applications that already serve hundreds/thousands of requests a
3182
- second should experience performance improvements due to
3183
- Time.now.httpdate usage being removed and reimplemented in C.
3184
-
3185
- There are also minor internal changes and cleanups for Rainbows!
3186
-
3187
- commit 62c844e343978f233e4f2567fb344411c39e263c
3188
- Author: Eric Wong <normalperson@yhbt.net>
3189
- Date: Wed Jan 5 14:06:00 2011 -0800
3190
-
3191
- http_parser: add clear method, deprecate reset
3192
-
3193
- But allows small optimizations to be made to avoid
3194
- constant/instance variable lookups later :)
3195
-
3196
- commit bd397ee11b60243ef15c5558c4309e46e27e6192
3197
- Author: Eric Wong <normalperson@yhbt.net>
3198
- Date: Wed Jan 5 11:41:36 2011 -0800
3199
-
3200
- http_response: simplify the status == 100 comparison
3201
-
3202
- No need to preserve the response tuplet if we're just
3203
- going to unpack it eventually.
3204
-
3205
- commit 062227e00f7ec589c3906a8bcd22dd7194268266
3206
- Author: Eric Wong <normalperson@yhbt.net>
3207
- Date: Wed Jan 5 11:32:44 2011 -0800
3208
-
3209
- http_server: remove unnecessary 'nil'
3210
-
3211
- commit 3f5abce2b1c071f9aed4cdd0951331d7f037c4b1
3212
- Author: Eric Wong <normalperson@yhbt.net>
3213
- Date: Wed Jan 5 11:16:21 2011 -0800
3214
-
3215
- socket_helper: expose more defaults in DEFAULTS hash
3216
-
3217
- This will allow Rainbows! to set :tcp_nodelay=>true
3218
- and possibly other things in the future.
3219
-
3220
- commit d100025759450dd1cbeccd1a3e44c46921bba26b
3221
- Author: Eric Wong <normalperson@yhbt.net>
3222
- Date: Tue Jan 4 17:50:51 2011 -0800
3223
-
3224
- http_response: implement httpdate in C
3225
-
3226
- This can return a static string and be significantly
3227
- faster as it reduces object allocations and Ruby method
3228
- calls for the fastest websites that serve thousands of
3229
- requests a second.
3230
-
3231
- It assumes the Ruby runtime is single-threaded, but that
3232
- is the case of Ruby 1.8 and 1.9 and also what Unicorn
3233
- is all about. This change is safe for Rainbows! under 1.8
3234
- and 1.9.
3235
-
3236
- commit 6183611108c571dbed29dfe2854b9f06757fd27f
3237
- Author: Eric Wong <normalperson@yhbt.net>
3238
- Date: Thu Dec 30 02:32:41 2010 +0000
3239
-
3240
- http_response: do not account for $, being set
3241
-
3242
- It's a minor garbage reduction, but nobody uses "$,", and
3243
- if they did, they'd break things in the Ruby standard library
3244
- as well as Rack, so let anybody who uses "$," shoot themselves
3245
- in the foot.
3246
-
3247
- commit 3a2634f3f68f6b8ea1aa7b2bb5944884bbfa8017
3248
- Author: Eric Wong <normalperson@yhbt.net>
3249
- Date: Thu Dec 30 02:30:19 2010 +0000
3250
-
3251
- tests: test parser works with keepalive_requests=0
3252
-
3253
- We use this in Rainbows! to disable keepalive in certain
3254
- configurations.
3255
-
3256
- commit 2c57f59172c45a3ca52dbddfb3f12c1bc70cbfd6
3257
- Author: Eric Wong <normalperson@yhbt.net>
3258
- Date: Wed Dec 29 16:45:13 2010 +0000
3259
-
3260
- http: remove unnecessary dir_config statement
3261
-
3262
- We do not link against any external libraries
3263
-
3264
- commit 2eb2c74aeb0da1d3f6f575ff8e05715e8c5ed85e
3265
- Author: Eric Wong <normalperson@yhbt.net>
3266
- Date: Sun Dec 26 08:10:35 2010 +0000
3267
-
3268
- Rakefile: fix fm_update task
3269
-
3270
- Oops!
3271
-
3272
- commit 6f7a3958c1544c1034ecf8b1ccfdd9dabd171fd2
3273
- Author: Eric Wong <normalperson@yhbt.net>
3274
- Date: Sun Dec 26 08:03:23 2010 +0000
3275
-
3276
- unicorn 3.2.1 - parser improvements for Rainbows!
3277
-
3278
- There are numerous improvements in the HTTP parser for
3279
- Rainbows!, none of which affect Unicorn-only users.
3280
-
3281
- The kgio dependency is incremented to 2.1: this should avoid
3282
- ENOSYS errors for folks building binaries on newer Linux
3283
- kernels and then deploying to older ones.
3284
-
3285
- There are also minor documentation improvements, the website
3286
- is now JavaScript-free!
3287
-
3288
- (Ignore the 3.2.0 release, I fat-fingered some packaging things)
3289
-
3290
- commit dece59f577d04f3735ccbeb190d26ce2c371d5f9
3291
- Author: Eric Wong <normalperson@yhbt.net>
3292
- Date: Sun Dec 26 07:58:38 2010 +0000
3293
-
3294
- gemspec: fix gemspec build
3295
-
3296
- Oops
3297
-
3298
- commit 03a43d9dc23c21f1c1a1baa2f29eab1157f4a076
3299
- Author: Eric Wong <normalperson@yhbt.net>
3300
- Date: Sun Dec 26 07:44:54 2010 +0000
3301
-
3302
- unicorn 3.2.0 - parser improvements for Rainbows!
3303
-
3304
- There are numerous improvements in the HTTP parser for
3305
- Rainbows!, none of which affect Unicorn-only users.
3306
-
3307
- The kgio dependency is incremented to 2.1: this should avoid
3308
- ENOSYS errors for folks building binaries on newer Linux
3309
- kernels and then deploying to older ones.
3310
-
3311
- There are also minor documentation improvements, the website
3312
- is now JavaScript-free!
3313
-
3314
- commit 51f30bf454e82f33443fe4a7f2e0496103c5ec6f
3315
- Author: Eric Wong <normalperson@yhbt.net>
3316
- Date: Sun Dec 26 07:29:38 2010 +0000
3317
-
3318
- http_server: remove needless lambda
3319
-
3320
- We can just use a begin block at startup, this also makes life
3321
- easier on RDoc.
3322
-
3323
- commit 45f0220ab13ec67150b3226a83437356f141eefd
3324
- Author: Eric Wong <normalperson@yhbt.net>
3325
- Date: Sun Dec 26 07:21:34 2010 +0000
3326
-
3327
- http_response: remove TODO item
3328
-
3329
- An unconfigured Rainbows! (e.g. Rainbows! { use :Base }) already
3330
- does keepalive and supports only a single client per-process.
3331
-
3332
- commit 87b1cf4eef3d717d345d730f28ddaad319f2fb2f
3333
- Author: Eric Wong <normalperson@yhbt.net>
3334
- Date: Sun Dec 26 06:23:28 2010 +0000
3335
-
3336
- http: #keepalive? and #headers? work after #next?
3337
-
3338
- We need to preserve our internal flags and only clear them on
3339
- HttpParser#parse. This allows the async concurrency models in
3340
- Rainbows! to work properly.
3341
-
3342
- commit c348223a045abb295b8c9d7dbf189264bc3a17c3
3343
- Author: Eric Wong <normalperson@yhbt.net>
3344
- Date: Sun Dec 26 03:38:13 2010 +0000
3345
-
3346
- bump kgio dependency to ~> 2.1
3347
-
3348
- The kgio 2.x series will maintain API compatibility
3349
- until 3.x, so it's safe to use any 2.x release.
3350
-
3351
- commit f970d87f9c0a4479a59685920a96c4d2fb2315e1
3352
- Author: Eric Wong <normalperson@yhbt.net>
3353
- Date: Sat Dec 25 19:30:12 2010 +0000
3354
-
3355
- http: fix typo in xftrust unit test
3356
-
3357
- Oops
3358
-
3359
- commit f62ef19a4aa3d3e4ce1aa37a499907ff776a8964
3360
- Author: Eric Wong <normalperson@yhbt.net>
3361
- Date: Fri Dec 24 08:37:22 2010 +0000
3362
-
3363
- doc: use wrongdoc for documentation
3364
-
3365
- wrongdoc factors out a bunch of common code from this
3366
- project into its own and removes JavaScript from RDoc
3367
- to boot.
3368
-
3369
- commit 210e5cc3109af248d29f1d722076ff8ecd1fde2d
3370
- Author: Eric Wong <normalperson@yhbt.net>
3371
- Date: Thu Dec 23 18:10:00 2010 +0000
3372
-
3373
- TODO: remove item for TeeInput performance
3374
-
3375
- Disabling TeeInput is possible now, so the filesystem
3376
- is no longer a bottleneck :>
3377
-
3378
- commit 5ffaf7df44425766a60d632881a2debd83605b52
3379
- Author: Eric Wong <normalperson@yhbt.net>
3380
- Date: Tue Dec 21 04:45:30 2010 +0000
3381
-
3382
- rdoc: include tag subject in NEWS file
3383
-
3384
- It's more useful this way
3385
-
3386
- commit 3a67490b10ca38d7d3d30c6917d75ce0e093706b
3387
- Author: Eric Wong <normalperson@yhbt.net>
3388
- Date: Tue Dec 21 01:58:32 2010 +0000
3389
-
3390
- rdoc: enable webcvs feature for cgit links
3391
-
3392
- Hopefully this gets more people reading our source.
3393
-
3394
- commit ee29a14cb383839cf5dcef6fe442558f46a1615b
3395
- Author: Eric Wong <normalperson@yhbt.net>
3396
- Date: Tue Dec 21 01:30:35 2010 +0000
3397
-
3398
- configurator: RDoc cleanups and improvements
3399
-
3400
- This is the most important part of Unicorn documentation
3401
- for end users.
3402
-
3403
- commit 1f5bac15cd8e4393c6da98eb7bb4532133dc6259
3404
- Author: Eric Wong <normalperson@yhbt.net>
3405
- Date: Tue Dec 21 01:28:23 2010 +0000
3406
-
3407
- http: hook up "trust_x_forwarded" to configurator
3408
-
3409
- More config bloat, sadly this is necessary for Rainbows! :<
3410
-
3411
- commit bf64b9aa855cf3590a4d5b4eca853aef33ba90cc
3412
- Author: Eric Wong <normalperson@yhbt.net>
3413
- Date: Mon Dec 20 22:05:50 2010 +0000
3414
-
3415
- http: allow ignoring X-Forwarded-* for url_scheme
3416
-
3417
- Evil clients may be exposed to the Unicorn parser via
3418
- Rainbows!, so we'll allow people to turn off blindly
3419
- trusting certain X-Forwarded* headers for "rack.url_scheme"
3420
- and rely on middleware to handle it.
3421
-
3422
- commit 8be3668c11cf721960581e325b481c105e8f3c89
3423
- Author: Eric Wong <normalperson@yhbt.net>
3424
- Date: Mon Dec 20 20:49:21 2010 +0000
3425
-
3426
- http: refactor finalize_header function
3427
-
3428
- rack.url_scheme handling and SERVER_{NAME,PORT} handling
3429
- each deserve their own functions.
3430
-
3431
- commit b740269f121167c4f93e3a0e155e05422f6e80ff
3432
- Author: Eric Wong <normalperson@yhbt.net>
3433
- Date: Mon Dec 20 19:40:57 2010 +0000
3434
-
3435
- http: update setting of "https" for rack.url_scheme
3436
-
3437
- The first value of X-Forwarded-Proto in rack.url_scheme should
3438
- be used as it can be chained. This header can be set multiple
3439
- times via different proxies in the chain, but consider the first
3440
- one to be valid.
3441
-
3442
- Additionally, respect X-Forwarded-SSL as it may be passed with
3443
- the "on" flag instead of X-Forwarded-Proto.
3444
-
3445
- ref: rack commit 85ca454e6143a3081d90e4546ccad602a4c3ad2e
3446
- and 35bb5ba6746b5d346de9202c004cc926039650c7
3447
-
3448
- commit 7ad59e0c48e12febae2a2fe86b76116c05977c6f
3449
- Author: Eric Wong <normalperson@yhbt.net>
3450
- Date: Mon Dec 20 00:14:52 2010 +0000
3451
-
3452
- http: support keepalive_requests directive
3453
-
3454
- This limits the number of keepalive requests of a single
3455
- connection to prevent a single client from monopolizing server
3456
- resources. On multi-process servers (e.g. Rainbows!) with many
3457
- keepalive clients per worker process, this can force a client to
3458
- reconnect and increase its chances of being accepted on a
3459
- less-busy worker process.
3460
-
3461
- This directive is named after the nginx directive which
3462
- is identical in function.
3463
-
3464
- commit 82ea9b442a9edaae6dc3b06a5c61035b2c2924c9
3465
- Author: Eric Wong <normalperson@yhbt.net>
3466
- Date: Sun Dec 19 18:47:23 2010 +0000
3467
-
3468
- http: delay clearing env on HttpParser#next?
3469
-
3470
- This allows apps/middlewares on Rainbows! that rely on env in
3471
- the response_body#close to hold onto the env.
3472
-
3473
- commit 39f264173717287eda70910e7a24fbafd21a4a7e
3474
- Author: Eric Wong <normalperson@yhbt.net>
3475
- Date: Fri Dec 10 05:45:14 2010 +0800
3476
-
3477
- unicorn 3.1.0 - client_buffer_body_size tuning
3478
-
3479
- This release enables tuning the client_buffer_body_size to raise
3480
- or lower the threshold for buffering request bodies to disk.
3481
- This only applies to users who have not disabled rewindable
3482
- input. There is also a TeeInput bugfix for uncommon usage
3483
- patterns and Configurator examples in the FAQ should be fixed
3484
-
3485
- commit 71716672752e573ff15002aaefd6e8ba8c6b6cb6
3486
- Author: Eric Wong <normalperson@yhbt.net>
3487
- Date: Thu Dec 9 03:39:03 2010 +0000
3488
-
3489
- allow client_buffer_body_size to be tuned
3490
-
3491
- Since modern machines have more memory these days and
3492
- clients are sending more data, avoiding potentially slow
3493
- filesystem operations for larger uploads can be useful
3494
- for some applications.
3495
-
3496
- commit 9d80b009a3cb795530ad23263f4eb525880e79dc
3497
- Author: Eric Wong <normalperson@yhbt.net>
3498
- Date: Wed Dec 8 23:53:25 2010 +0000
3499
-
3500
- configurator: ensure examples in FAQ still work
3501
-
3502
- This has been broken since 2.0.x
3503
- Internal cleanups sometimes have unintended consequences :<
3504
-
3505
- commit 3b2fc62dadd3c90038c168849b33c4ca6df058da
3506
- Author: Eric Wong <normalperson@yhbt.net>
3507
- Date: Wed Dec 8 22:02:45 2010 +0000
3508
-
3509
- tee_input: fix accounting error on corked requests
3510
-
3511
- In case a request sends the header and buffer as one packet,
3512
- TeeInput relying on accounting info from StreamInput is harmful
3513
- as StreamInput will buffer in memory outside of TeeInput's
3514
- control.
3515
-
3516
- This bug is triggered by calling env["rack.input"].size or
3517
- env["rack.input"].rewind before to read.
3518
-
3519
- commit 52f55529293e466a77090691d1fe06a7933c74a1
3520
- Author: Eric Wong <normalperson@yhbt.net>
3521
- Date: Fri Dec 3 00:31:15 2010 +0000
3522
-
3523
- unicorn 3.0.1 - one bugfix for Rainbows!
3524
-
3525
- ...and only Rainbows! This release fixes HTTP pipelining for
3526
- requests with bodies for users of synchronous Rainbows!
3527
- concurrency models.
3528
-
3529
- Since Unicorn itself does not support keepalive nor pipelining,
3530
- Unicorn-only users need not upgrade.
3531
-
3532
- commit c32488dcc69181d2e10b82645ef87c8b8b88b8e1
3533
- Author: Eric Wong <normalperson@yhbt.net>
3534
- Date: Thu Dec 2 05:30:39 2010 +0000
3535
-
3536
- stream_input: avoid trailer parsing on unchunked requests
3537
-
3538
- It screws up keepalive for Rainbows! requests with a body.
3539
-
3540
- commit dee9e6432c8eb5269a19c4c6b66ab932fdeda34f
3541
- Author: Eric Wong <normalperson@yhbt.net>
3542
- Date: Sat Nov 20 10:14:19 2010 +0800
3543
-
3544
- unicorn 3.0.0 - disable rewindable input!
3545
-
3546
- Rewindable "rack.input" may be disabled via the
3547
- "rewindable_input false" directive in the configuration file.
3548
- This will violate Rack::Lint for Rack 1.x applications, but can
3549
- reduce I/O for applications that do not need a rewindable
3550
- input.
3551
-
3552
- This release updates us to the Kgio 2.x series which should play
3553
- more nicely with other libraries and applications. There are
3554
- also internal cleanups and improvements for future versions of
3555
- Rainbows!
3556
-
3557
- The Unicorn 3.x series supercedes the 2.x series
3558
- while the 1.x series will remain supported indefinitely.
3559
-
3560
- commit ad268cea66c2b91538dd60fc7f945348bb24214d
3561
- Author: Eric Wong <normalperson@yhbt.net>
3562
- Date: Sat Nov 20 08:07:12 2010 +0800
3563
-
3564
- tests: stream_input tests for mixed gets/read calls
3565
-
3566
- Some apps may do them, so make sure we do them correctly.
3567
-
3568
- commit cd315e5a20b17d29679fb22b4e2ab44cd6d0edeb
3569
- Author: Eric Wong <normalperson@yhbt.net>
3570
- Date: Sat Nov 20 07:45:57 2010 +0800
3571
-
3572
- stream_input: use String#sub! instead of gsub!
3573
-
3574
- There's no difference because of the \A anchor, but sub!
3575
- is doesn't loop so it's simpler.
3576
-
3577
- commit 5bc239fd154a7eaebeb024394f8e0b507bbf4c5a
3578
- Author: Eric Wong <normalperson@yhbt.net>
3579
- Date: Fri Nov 19 20:51:57 2010 +0000
3580
-
3581
- stream_input: small cleanups and fixes
3582
-
3583
- No need to accept any number of args, that could hide bugs in
3584
- applications that could give three or more arguments. We also
3585
- raise ArgumentError when given a negative length argument to
3586
- read.
3587
-
3588
- commit d12e10ea88c7adeb97094e4b835201e4c2ce52ab
3589
- Author: Eric Wong <normalperson@yhbt.net>
3590
- Date: Fri Nov 19 01:55:07 2010 +0000
3591
-
3592
- tests: isolate kgio 2.0.0 instead of the prerelease
3593
-
3594
- Same thing, but might as well make it more obvious.
3595
-
3596
- commit 507f228864574437e610e57d20d3b77c1e6d0e41
3597
- Author: Eric Wong <normalperson@yhbt.net>
3598
- Date: Fri Nov 19 08:04:14 2010 +0800
3599
-
3600
- unicorn 3.0.0pre2 - less bad than 2.x or 3.0.0pre1!
3601
-
3602
- This release updates us to the Kgio 2.x series which should play
3603
- more nicely with other applications. There are also bugfixes
3604
- from the 2.0.1 release and a small bugfix to the new StreamInput
3605
- class.
3606
-
3607
- The Unicorn 3.x series will supercede the 2.x series
3608
- while the 1.x series will remain supported indefinitely.
3609
-
3610
- commit 238c98ec4c353bb14671ab543c21baa068b7e3f2
3611
- Author: Eric Wong <normalperson@yhbt.net>
3612
- Date: Fri Nov 19 08:02:45 2010 +0800
3613
-
3614
- update to kgio 2.x series
3615
-
3616
- The Kgio 2.x API is less brain-damaged than the 1.3.x series
3617
- was, and should solve API-compatibility problems with
3618
- dalli 0.11.1.
3619
-
3620
- commit 86d2a22ffdc4bf9f16e1870f9db9a2ff84760c7c
3621
- Merge: eda4086 268c2ec
3622
- Author: Eric Wong <normalperson@yhbt.net>
3623
- Date: Thu Nov 18 07:48:12 2010 +0800
3624
-
3625
- Merge branch '2.0.x-stable'
3626
-
3627
- * 2.0.x-stable:
3628
- unicorn 2.0.1 - fix errors in error handling
3629
- tests: add parser error test from Rainbows!
3630
- http_server: fix HttpParserError constant resolution
3631
- t0012: fix race condition in reload
3632
-
3633
- commit 268c2ec5fef2630b0626b848be9d6ec46d360ddb
3634
- Author: Eric Wong <normalperson@yhbt.net>
3635
- Date: Thu Nov 18 07:42:40 2010 +0800
3636
-
3637
- unicorn 2.0.1 - fix errors in error handling
3638
-
3639
- This release fixes errors in our own error handling,
3640
- causing certain errors to not be logged nor responded
3641
- to correctly.
3642
-
3643
- Eric Wong (3):
3644
- t0012: fix race condition in reload
3645
- http_server: fix HttpParserError constant resolution
3646
- tests: add parser error test from Rainbows!
3647
-
3648
- commit 859593b418db7e5fd93295a7a8b15de56cc4f6dd
3649
- Author: Eric Wong <normalperson@yhbt.net>
3650
- Date: Thu Nov 18 07:44:47 2010 +0800
3651
-
3652
- tests: add parser error test from Rainbows!
3653
-
3654
- This will help ensure we trap our own errors properly
3655
- in the future.
3656
- (cherry picked from commit eda408603edc51f10f17217c767b31a45eb6c627)
3657
-
3658
- commit eda408603edc51f10f17217c767b31a45eb6c627
3659
- Author: Eric Wong <normalperson@yhbt.net>
3660
- Date: Thu Nov 18 07:44:47 2010 +0800
3661
-
3662
- tests: add parser error test from Rainbows!
3663
-
3664
- This will help ensure we trap our own errors properly
3665
- in the future.
3666
-
3667
- commit 3362dc51934c15fd944748e55ba4a470cc60d27d
3668
- Author: Eric Wong <normalperson@yhbt.net>
3669
- Date: Thu Nov 18 07:36:27 2010 +0800
3670
-
3671
- stream_input: read with zero length returns ''
3672
-
3673
- Any calls to read with an explicit zero length now returns an
3674
- empty string. While not explicitly specified by Rack::Lint,
3675
- this is for compatibility with StringIO and IO methods which
3676
- are common in other web servers.
3677
-
3678
- commit a6d96b61c2d81af077d55f43121c8472aa095447
3679
- Author: Eric Wong <normalperson@yhbt.net>
3680
- Date: Wed Nov 17 11:20:02 2010 -0800
3681
-
3682
- http_server: fix HttpParserError constant resolution
3683
-
3684
- "Unicorn" is no longer in the default constant resolution
3685
- namespace.
3686
- (cherry picked from commit 390e351dd1283d4c80a12b744b1327fff091a141)
3687
-
3688
- commit 390e351dd1283d4c80a12b744b1327fff091a141
3689
- Author: Eric Wong <normalperson@yhbt.net>
3690
- Date: Wed Nov 17 11:20:02 2010 -0800
3691
-
3692
- http_server: fix HttpParserError constant resolution
3693
-
3694
- "Unicorn" is no longer in the default constant resolution
3695
- namespace.
3696
-
3697
- commit 01ae51fa5fda40a63277b0d1189925fb209c75a9
3698
- Author: Eric Wong <normalperson@yhbt.net>
3699
- Date: Thu Nov 18 02:48:41 2010 +0800
3700
-
3701
- add missing test files
3702
-
3703
- oops :x
3704
-
3705
- commit 958c1f81a2c570f4027d8fe2dd4f5c40ac7ed430
3706
- Author: Eric Wong <normalperson@yhbt.net>
3707
- Date: Tue Nov 16 16:00:07 2010 -0800
3708
-
3709
- unicorn 3.0.0pre1
3710
-
3711
- Rewindable "rack.input" may be disabled via the
3712
- "rewindable_input false" directive in the configuration file.
3713
- This will violate Rack::Lint for Rack 1.x applications, but
3714
- can reduce I/O for applications that do not need it.
3715
-
3716
- There are also internal cleanups and enhancements for future
3717
- versions of Rainbows!
3718
-
3719
- Eric Wong (11):
3720
- t0012: fix race condition in reload
3721
- enable HTTP keepalive support for all methods
3722
- http_parser: add HttpParser#next? method
3723
- tee_input: switch to simpler API for parsing trailers
3724
- switch versions to 3.0.0pre
3725
- add stream_input class and build tee_input on it
3726
- configurator: enable "rewindable_input" directive
3727
- http_parser: ensure keepalive is disabled when reset
3728
- *_input: make life easier for subclasses/modules
3729
- tee_input: restore read position after #size
3730
- preread_input: no-op for non-rewindable "rack.input"
3731
-
3732
- commit 431de671a29b312bd19e615bd4bd99228b0c8b13
3733
- Author: Eric Wong <normalperson@yhbt.net>
3734
- Date: Tue Nov 16 13:51:24 2010 -0800
3735
-
3736
- preread_input: no-op for non-rewindable "rack.input"
3737
-
3738
- We may get "rack.input" objects that are not rewindable
3739
- in the future, so be prepared for those and do no harm.
3740
-
3741
- commit d41e5364bde413e195df8803845f7232718325a6
3742
- Author: Eric Wong <normalperson@yhbt.net>
3743
- Date: Thu Oct 28 09:03:21 2010 +0000
3744
-
3745
- t0012: fix race condition in reload
3746
-
3747
- We need to ensure the old worker is reaped before sending
3748
- new requests intended for the new worker.
3749
- (cherry picked from commit b45bf946545496cf8d69037113533d7a58ce7e20)
3750
-
3751
- commit 17a734a9f6ccea8c969a574f09b5d8dd3d568a9c
3752
- Author: Eric Wong <normalperson@yhbt.net>
3753
- Date: Sat Nov 13 16:41:10 2010 +0800
3754
-
3755
- tee_input: restore read position after #size
3756
-
3757
- It's possible for an application to call size after it has read
3758
- a few bytes/lines, so do not screw up a user's read offset when
3759
- consuming input.
3760
-
3761
- commit 855c02a9720a17854a2f1c715efbe502cdba54e2
3762
- Author: Eric Wong <normalperson@yhbt.net>
3763
- Date: Fri Nov 12 10:59:14 2010 +0800
3764
-
3765
- *_input: make life easier for subclasses/modules
3766
-
3767
- Avoid having specific knowledge of internals in TeeInput
3768
- and instead move that to StreamInput when dealing with
3769
- byte counts. This makes things easier for Rainbows! which
3770
- will need to extends these classes.
3771
-
3772
- commit 3b544fb2c0e4a1e14a7bcb752a8af9819b5aaeb2
3773
- Author: Eric Wong <normalperson@yhbt.net>
3774
- Date: Thu Nov 11 07:31:01 2010 +0800
3775
-
3776
- http_parser: ensure keepalive is disabled when reset
3777
-
3778
- We'll need this in Rainbows!
3779
-
3780
- commit a89ccf321224f3248ddd00bb0edb320311604e4e
3781
- Author: Eric Wong <normalperson@yhbt.net>
3782
- Date: Thu Nov 11 02:16:50 2010 +0800
3783
-
3784
- configurator: enable "rewindable_input" directive
3785
-
3786
- This allows users to override the current Rack spec and disable
3787
- the rewindable input requirement. This can allow applications
3788
- to use less I/O to minimize the performance impact when
3789
- processing uploads.
3790
-
3791
- commit 7d44b5384758aeddcb49d7606a9908308df7c698
3792
- Author: Eric Wong <normalperson@yhbt.net>
3793
- Date: Thu Nov 11 01:13:12 2010 +0800
3794
-
3795
- add stream_input class and build tee_input on it
3796
-
3797
- We will eventually expose a Unicorn::StreamInput object as
3798
- "rack.input" for Rack 2.x applications. StreamInput allows
3799
- applications to avoid buffering input to disk, removing the
3800
- (potentially expensive) rewindability requirement of Rack 1.x.
3801
-
3802
- TeeInput is also rewritten to build off StreamInput for
3803
- simplicity. The only regression is that TeeInput#rewind forces
3804
- us to consume an unconsumed stream before returning, a
3805
- negligible price to pay for decreased complexity.
3806
-
3807
- commit 1493af7cc23afecc8592ce44f5226476afccd212
3808
- Author: Eric Wong <normalperson@yhbt.net>
3809
- Date: Thu Nov 11 07:17:19 2010 +0800
3810
-
3811
- switch versions to 3.0.0pre
3812
-
3813
- Here are major, incompatible internal API changes.
3814
-
3815
- commit 8edcc3f9e1be9113685e61b9a83994a02d37c768
3816
- Author: Eric Wong <normalperson@yhbt.net>
3817
- Date: Sun Nov 7 10:21:43 2010 +0800
3818
-
3819
- tee_input: switch to simpler API for parsing trailers
3820
-
3821
- Not that anybody uses trailers extensively, but it's
3822
- good to know it's there.
3823
-
3824
- commit 60a9ec94f1f738f881e67f0a881c44c104f07c04
3825
- Author: Eric Wong <normalperson@yhbt.net>
3826
- Date: Sat Nov 6 10:30:44 2010 +0800
3827
-
3828
- http_parser: add HttpParser#next? method
3829
-
3830
- An easy combination of the existing HttpParser#keepalive? and
3831
- HttpParser#reset methods, this makes it easier to implement
3832
- persistence.
3833
-
3834
- commit 7987e1a4001491f8a494f3926037f8cbee713263
3835
- Author: Eric Wong <normalperson@yhbt.net>
3836
- Date: Fri Sep 3 01:48:24 2010 +0000
3837
-
3838
- enable HTTP keepalive support for all methods
3839
-
3840
- Yes, this means even POST/PUT bodies may be kept alive,
3841
- but only if the body (and trailers) are fully-consumed.
3842
-
3843
- commit b45bf946545496cf8d69037113533d7a58ce7e20
3844
- Author: Eric Wong <normalperson@yhbt.net>
3845
- Date: Thu Oct 28 09:03:21 2010 +0000
3846
-
3847
- t0012: fix race condition in reload
3848
-
3849
- We need to ensure the old worker is reaped before sending
3850
- new requests intended for the new worker.
3851
-
3852
- commit 5ffc1f81c3f56d17ff3369f7514e978754840c29
3853
- Author: Eric Wong <normalperson@yhbt.net>
3854
- Date: Wed Oct 27 23:32:24 2010 +0000
3855
-
3856
- unicorn 2.0.0 - mostly internal cleanups
3857
-
3858
- Despite the version number, this release mostly features
3859
- internal cleanups for future versions of Rainbows!. User
3860
- visible changes include reductions in CPU wakeups on idle sites
3861
- using high timeouts.
3862
-
3863
- Barring possible portability issues due to the introduction of
3864
- the kgio library, this release should be ready for all to use.
3865
- However, 1.1.x (and possibly 1.0.x) will continue to be
3866
- maintained. Unicorn 1.1.5 and 1.0.2 have also been released
3867
- with bugfixes found during development of 2.0.0.
3868
-
3869
- commit a3b08e9411f1d958e2264329c67972541424ac35
3870
- Merge: 0692e8c 7f3ebe9
3871
- Author: Eric Wong <normalperson@yhbt.net>
3872
- Date: Wed Oct 27 23:31:41 2010 +0000
3873
-
3874
- Merge branch '1.1.x-stable'
3875
-
3876
- * 1.1.x-stable:
3877
- unicorn 1.1.5
3878
- doc: stop using deprecated rdoc CLI options
3879
- gemspec: depend on Isolate 3.0.0 for dev
3880
- configurator: reloading with unset values restores default
3881
- configurator: use "__send__" instead of "send"
3882
- Rakefile: capture prerelease tags
3883
- Rakefile: don't post freshmeat on empty changelogs
3884
- fix delays in signal handling
3885
-
3886
- commit 0692e8cb10dd27275f2de794ed6eba62e9918431
3887
- Merge: 4d493d8 ea975cc
3888
- Author: Eric Wong <normalperson@yhbt.net>
3889
- Date: Wed Oct 27 23:31:38 2010 +0000
3890
-
3891
- Merge branch 'maint'
3892
-
3893
- * maint:
3894
- unicorn 1.0.2
3895
- doc: stop using deprecated rdoc CLI options
3896
- gemspec: depend on Isolate 3.0.0 for dev
3897
- configurator: reloading with unset values restores default
3898
- configurator: use "__send__" instead of "send"
3899
- Rakefile: capture prerelease tags
3900
- Rakefile: don't post freshmeat on empty changelogs
3901
- fix delays in signal handling
3902
- SIGTTIN works after SIGWINCH
3903
-
3904
- commit 4d493d8ad203d7f13ac56b7d6ba2b3aaa481cbd2
3905
- Author: Eric Wong <normalperson@yhbt.net>
3906
- Date: Wed Oct 27 16:26:28 2010 -0700
3907
-
3908
- examples/unicorn.conf: add a note about throttling signals
3909
-
3910
- Sending the same signal faster than the receiver can process
3911
- means signals can get lost.
3912
-
3913
- commit ea975cc3e6d2e6ac9c971c8cbda712486ec63c2a
3914
- Author: Eric Wong <normalperson@yhbt.net>
3915
- Date: Wed Oct 27 23:11:09 2010 +0000
3916
-
3917
- unicorn 1.0.2
3918
-
3919
- This is the latest maintenance release of the 1.0.x series.
3920
- All users are encouraged to upgrade to 1.1.x stable series
3921
- and report bugs there.
3922
-
3923
- Shortlog of changes since 1.0.1:
3924
-
3925
- Eric Wong (8):
3926
- SIGTTIN works after SIGWINCH
3927
- fix delays in signal handling
3928
- Rakefile: don't post freshmeat on empty changelogs
3929
- Rakefile: capture prerelease tags
3930
- configurator: use "__send__" instead of "send"
3931
- configurator: reloading with unset values restores default
3932
- gemspec: depend on Isolate 3.0.0 for dev
3933
- doc: stop using deprecated rdoc CLI options
3934
-
3935
- commit 856959cc0b2dbc96f115d26672d0f5b73ae79914
3936
- Author: Eric Wong <normalperson@yhbt.net>
3937
- Date: Wed Oct 27 23:07:42 2010 +0000
3938
-
3939
- doc: stop using deprecated rdoc CLI options
3940
-
3941
- -N and -a switches no longer exist in rdoc 2.5
3942
- (cherry picked from commit 054c7df93db61839648925cfd881ae880709a210)
3943
-
3944
- commit 04f0f44f9bd0907fcff1e2cdc59f7e84d4110539
3945
- Author: Eric Wong <normalperson@yhbt.net>
3946
- Date: Wed Oct 27 23:08:51 2010 +0000
3947
-
3948
- gemspec: depend on Isolate 3.0.0 for dev
3949
-
3950
- No reason to not use the latest and greatest!
3951
- (cherry picked from commit 570a57c07fd8c3d24b7337637e0dd30136b3a11a)
3952
-
3953
- Conflicts:
3954
-
3955
- unicorn.gemspec
3956
-
3957
- commit 054c7df93db61839648925cfd881ae880709a210
3958
- Author: Eric Wong <normalperson@yhbt.net>
3959
- Date: Wed Oct 27 23:07:42 2010 +0000
3960
-
3961
- doc: stop using deprecated rdoc CLI options
3962
-
3963
- -N and -a switches no longer exist in rdoc 2.5
3964
-
3965
- commit 570a57c07fd8c3d24b7337637e0dd30136b3a11a
3966
- Author: Eric Wong <normalperson@yhbt.net>
3967
- Date: Wed Oct 27 23:06:45 2010 +0000
3968
-
3969
- gemspec: depend on Isolate 3.0.0 for dev
3970
-
3971
- No reason to not use the latest and greatest!
3972
-
3973
- commit 2dd4a89d5726e13b962c1e287d84a6c30f5dd46c
3974
- Author: Eric Wong <normalperson@yhbt.net>
3975
- Date: Wed Oct 27 13:51:12 2010 -0700
3976
-
3977
- configurator: reloading with unset values restores default
3978
-
3979
- If a configuration directive is set at startup and later
3980
- unset, it correctly restores the original default value
3981
- as if it had never been set in the first place.
3982
-
3983
- This applies to the majority of the configuration values with
3984
- a few exceptions:
3985
-
3986
- * This only applies to stderr_path and stdout_path when
3987
- daemonized (the usual case, they'll be redirected to
3988
- "/dev/null"). When NOT daemonized, we cannot easily redirect
3989
- back to the original stdout/stderr destinations.
3990
-
3991
- * Unsetting working_directory does not restore the
3992
- original working directory where Unicorn was started.
3993
- As far as we can tell unsetting this after setting it is
3994
- rarely desirable and greatly increases the probability of
3995
- user error.
3996
- (cherry picked from commit 51b2b90284000aee8d79b37a5406173c45ae212d)
3997
-
3998
- commit 5e672c48d8a3555e4a01f653fb2e0b3556087737
3999
- Author: Eric Wong <normalperson@yhbt.net>
4000
- Date: Wed Oct 27 12:46:46 2010 -0700
4001
-
4002
- configurator: use "__send__" instead of "send"
4003
-
4004
- It's less ambiguous since this is a network server after all.
4005
- (cherry picked from commit f62c5850d7d17d7b5e301a494f8bdf5be3674411)
4006
-
4007
- commit 51b2b90284000aee8d79b37a5406173c45ae212d
4008
- Author: Eric Wong <normalperson@yhbt.net>
4009
- Date: Wed Oct 27 13:51:12 2010 -0700
4010
-
4011
- configurator: reloading with unset values restores default
4012
-
4013
- If a configuration directive is set at startup and later
4014
- unset, it correctly restores the original default value
4015
- as if it had never been set in the first place.
4016
-
4017
- This applies to the majority of the configuration values with
4018
- a few exceptions:
4019
-
4020
- * This only applies to stderr_path and stdout_path when
4021
- daemonized (the usual case, they'll be redirected to
4022
- "/dev/null"). When NOT daemonized, we cannot easily redirect
4023
- back to the original stdout/stderr destinations.
4024
-
4025
- * Unsetting working_directory does not restore the
4026
- original working directory where Unicorn was started.
4027
- As far as we can tell unsetting this after setting it is
4028
- rarely desirable and greatly increases the probability of
4029
- user error.
4030
-
4031
- commit f62c5850d7d17d7b5e301a494f8bdf5be3674411
4032
- Author: Eric Wong <normalperson@yhbt.net>
4033
- Date: Wed Oct 27 12:46:46 2010 -0700
4034
-
4035
- configurator: use "__send__" instead of "send"
4036
-
4037
- It's less ambiguous since this is a network server after all.
4038
-
4039
- commit 928a88d5419210380078a2e141cb64d308719295
4040
- Author: Eric Wong <normalperson@yhbt.net>
4041
- Date: Wed Oct 6 01:27:45 2010 +0000
4042
-
4043
- Rakefile: capture prerelease tags
4044
-
4045
- Since we do those, now.
4046
- (cherry picked from commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c)
4047
-
4048
- commit 74dec350d93b88c0a5bd792239671097901e2393
4049
- Author: Eric Wong <normalperson@yhbt.net>
4050
- Date: Wed Oct 27 19:32:55 2010 +0000
4051
-
4052
- Rakefile: don't post freshmeat on empty changelogs
4053
-
4054
- We don't want to flood or monopolize freshmeat.
4055
- (cherry picked from commit 1ad510d645e0c84c8d352ac0deaeefa75240ea94)
4056
-
4057
- commit c7feb7e10a937df2dc72f53aa6cc1ebda4c1cd3b
4058
- Author: Eric Wong <normalperson@yhbt.net>
4059
- Date: Wed Oct 27 12:43:14 2010 -0700
4060
-
4061
- configurator: switch to normal class
4062
-
4063
- No point in using a Struct for (1.8) space-efficiency
4064
- if there's only one of them.
4065
-
4066
- commit 10037f2aabb3fab4296fc90c615e7caa9f4a9b53
4067
- Author: Eric Wong <normalperson@yhbt.net>
4068
- Date: Wed Oct 27 01:44:33 2010 +0000
4069
-
4070
- fix delays in signal handling
4071
-
4072
- There is no need to loop in the master_sleep method at all, as
4073
- the rest of the code is designed to function even on interrupted
4074
- sleeps.
4075
-
4076
- This change is included as part of a larger cleanup in master.
4077
- (commit bdc79712e5ac53d39c51e80dfe50aff950e5053f)
4078
-
4079
- commit 514af94321ef0fab74894e517792c4a9709d76f5
4080
- Author: Eric Wong <normalperson@yhbt.net>
4081
- Date: Wed Oct 27 00:36:25 2010 +0000
4082
-
4083
- reduce master process wakeups
4084
-
4085
- To reduce CPU wakeups and save power during off hours,
4086
- we can precalculate a safe amount to sleep before killing
4087
- off idle workers.
4088
-
4089
- commit 7ef05ec23b06f06e9d4bb1cf45d1907b4eeacb80
4090
- Author: Eric Wong <normalperson@yhbt.net>
4091
- Date: Tue Oct 26 23:19:09 2010 +0000
4092
-
4093
- master: remove limit on queued signals
4094
-
4095
- If a moronic sysadmin is sending too many signals, just let them
4096
- do it. It's likely something is terribly wrong when the server
4097
- is overloaded with signals, so don't try to protect users from
4098
- it. This will also help in case where TTOU signals are sent too
4099
- quickly during shutdown, although sleeping between kill(2)
4100
- syscalls is always a good idea because of how non-real-time
4101
- signals are delivered.
4102
-
4103
- commit 2243c97edf80d635871bc678794f07d6c1d033c2
4104
- Author: Eric Wong <normalperson@yhbt.net>
4105
- Date: Sat Oct 9 00:03:43 2010 +0000
4106
-
4107
- unicorn 2.0.0pre3 - more small fixes
4108
-
4109
- There is a new Unicorn::PrereadInput middleware to which allows
4110
- input bodies to be drained off the socket and buffered to disk
4111
- (or memory) before dispatching the application.
4112
-
4113
- HTTP Pipelining behavior is fixed for Rainbows! There
4114
- are some small Kgio fixes and updates for Rainbows!
4115
- users as well.
4116
-
4117
- commit 6eb46e422f4b2ba98c795fca5e18e7262c0c688e
4118
- Author: Eric Wong <normalperson@yhbt.net>
4119
- Date: Fri Oct 8 23:44:23 2010 +0000
4120
-
4121
- add PrereadInput middleware to get around TeeInput
4122
-
4123
- This may be useful for some apps that wish to drain the body
4124
- before acquiring an app-wide lock. Maybe it's more useful
4125
- with Rainbows!...
4126
-
4127
- commit 9be78606355d4a0ad4ea59316ab2ce998c5b9a12
4128
- Author: Eric Wong <normalperson@yhbt.net>
4129
- Date: Fri Oct 8 22:58:59 2010 +0000
4130
-
4131
- bump kgio dependency
4132
-
4133
- kgio 1.3.1 fixes some cases for zero-length reads.
4134
-
4135
- commit f20274e84169e18a73a5cd341b6bc31b625b83ce
4136
- Author: Eric Wong <normalperson@yhbt.net>
4137
- Date: Fri Oct 8 08:49:22 2010 +0000
4138
-
4139
- build: automatically call isolate on updates
4140
-
4141
- Automation is nice, the makefile needs some cleanup
4142
-
4143
- commit 861481436b933bf4b8d647c43191c701651f16e4
4144
- Author: Eric Wong <normalperson@yhbt.net>
4145
- Date: Fri Oct 8 01:34:37 2010 -0700
4146
-
4147
- bump kgio dependency to 1.3.0
4148
-
4149
- There was a backwards-incompatible API change,
4150
- but that didn't even affect us.
4151
-
4152
- commit c9950692f44bd91af089794664dc56a446668004
4153
- Author: Eric Wong <normalperson@yhbt.net>
4154
- Date: Thu Oct 7 18:42:15 2010 -0700
4155
-
4156
- gemspec: bump kgio version
4157
-
4158
- kgio 1.2.1 works around a bug for some *BSDs, some of which are
4159
- popular platforms for developers.
4160
-
4161
- commit e99178ef89eca9e46b73484aaf9733259dac9dca
4162
- Author: Eric Wong <normalperson@yhbt.net>
4163
- Date: Thu Oct 7 08:12:36 2010 +0000
4164
-
4165
- http: fix behavior with pipelined requests
4166
-
4167
- We cannot clear the buffer between requests because
4168
- clients may send multiple requests that get taken in
4169
- one read()/recv() call.
4170
-
4171
- commit eb5ba488422020568e5ccf650891d7fccce7238f
4172
- Author: Eric Wong <normalperson@yhbt.net>
4173
- Date: Thu Oct 7 07:22:58 2010 +0000
4174
-
4175
- unicorn 2.0.0pre2 - releases are cheap
4176
-
4177
- Internal changes/cleanups for Rainbows!
4178
-
4179
- commit 4c48b520786807487f7f76d709b0dbcee63c4d0c
4180
- Author: Eric Wong <normalperson@yhbt.net>
4181
- Date: Thu Oct 7 06:59:05 2010 +0000
4182
-
4183
- http: remove unnecessary rb_str_update() calls
4184
-
4185
- Rubinius no longer uses it, and it conflicts with a public
4186
- method in MRI.
4187
-
4188
- commit 8daf254356241c135ad2c843de567910528a10a7
4189
- Author: Eric Wong <normalperson@yhbt.net>
4190
- Date: Thu Oct 7 06:55:22 2010 +0000
4191
-
4192
- start using more compact parser API
4193
-
4194
- This should be easier for Rainbows! to use
4195
-
4196
- commit 090f56bb79a8ec734719d9be90daa3cd01d29871
4197
- Author: Eric Wong <normalperson@yhbt.net>
4198
- Date: Thu Oct 7 06:33:03 2010 +0000
4199
-
4200
- http_server: avoid method redefinition warnings
4201
-
4202
- We clobber the accessor methods.
4203
-
4204
- commit 5df8f15c32420c03b2e763a649e6d829ede52113
4205
- Author: Eric Wong <normalperson@yhbt.net>
4206
- Date: Thu Oct 7 05:32:38 2010 +0000
4207
-
4208
- http: allow this to be used as a request object
4209
-
4210
- The parser and request object become one and the
4211
- same, since the parser lives for the lifetime
4212
- of the request.
4213
-
4214
- commit 629107d749748f661ddb73f146ab35836874cc9e
4215
- Author: Eric Wong <normalperson@yhbt.net>
4216
- Date: Wed Oct 6 17:16:49 2010 -0700
4217
-
4218
- bin/unicorn: show "RACK_ENV" in --help
4219
-
4220
- It's more descriptive as to what environment we're setting
4221
- than "ENVIRONMENT".
4222
-
4223
- commit 1d1a2b1bd5bdd89f774f19bf8ad24c2f5f8a2d4c
4224
- Author: Eric Wong <normalperson@yhbt.net>
4225
- Date: Wed Oct 6 01:27:45 2010 +0000
4226
-
4227
- Raiefile: capture prerelease tags
4228
-
4229
- Since we do those, now.
4230
-
4231
- commit cb48b1bc7231db7f53bec6e88e696dc53153750d
4232
- Author: Eric Wong <normalperson@yhbt.net>
4233
- Date: Wed Oct 6 01:08:36 2010 +0000
4234
-
4235
- unicorn 2.0.0pre1 - a boring "major" release
4236
-
4237
- Mostly internal cleanups for future versions of Rainbows! and
4238
- people trying out Rubinius. There are tiny performance
4239
- improvements for Ruby 1.9.2 users which may only be noticeable
4240
- with Rainbows!
4241
-
4242
- Unicorn 1.1.x users are NOT required to upgrade.
4243
-
4244
- commit 4c59a4861bf3f8d25335696c1f8cbce3cd5db902
4245
- Author: Eric Wong <normalperson@yhbt.net>
4246
- Date: Wed Oct 6 01:07:49 2010 +0000
4247
-
4248
- gemspec: depend on newer isolate
4249
-
4250
- We use the latest and greatest whenever possible.
4251
-
4252
- commit cb233696be73873f6f8c367f4b977ade1815b265
4253
- Author: Eric Wong <normalperson@yhbt.net>
4254
- Date: Tue Oct 5 23:59:45 2010 +0000
4255
-
4256
- various cleanups and reduce indentation
4257
-
4258
- This also affects some constant scoping rules, but hopefully
4259
- makes things easier to follow. Accessing ivars (not via
4260
- accessor methods) are also slightly faster, so use them in
4261
- the criticial process_client code path.
4262
-
4263
- commit d4c898a4adc6cb6c3a20a648ae6b9b6a226066a6
4264
- Author: Eric Wong <normalperson@yhbt.net>
4265
- Date: Tue Oct 5 23:34:39 2010 +0000
4266
-
4267
- upgrade to kgio 1.2.0
4268
-
4269
- This provides the kgio_read! method which is like readpartial,
4270
- only significantly cheaper when a client disconnects on us.
4271
-
4272
- commit 80f9987581014d694b8eb67bba0d5c408b7d0f98
4273
- Author: Eric Wong <normalperson@yhbt.net>
4274
- Date: Tue Oct 5 23:34:19 2010 +0000
4275
-
4276
- GNUmakefile: fix isolate invocation
4277
-
4278
- again :x
4279
-
4280
- commit fd6b47cf1690cb45f2144cd92e0fe1f301c7c37b
4281
- Author: Eric Wong <normalperson@yhbt.net>
4282
- Date: Tue Oct 5 22:09:20 2010 +0000
4283
-
4284
- tee_input: use kgio to avoid stack traces on EOF
4285
-
4286
- TeeInput methods may be invoked deep in the stack, so
4287
- avoid giving them more work to do if a client disconnects
4288
- due to a bad upload.
4289
-
4290
- commit 350e8fa3a94838bcc936782315b3472615fe6517
4291
- Author: Eric Wong <normalperson@yhbt.net>
4292
- Date: Tue Oct 5 22:01:19 2010 +0000
4293
-
4294
- http: raise empty backtrace for HttpParserError
4295
-
4296
- It's expensive to generate a backtrace and this exception
4297
- is only triggered by bad clients. So make it harder for
4298
- them to DoS us by sending bad requests.
4299
-
4300
- commit c2975b85b9378797631d3ab133cac371f9fadf54
4301
- Author: Eric Wong <normalperson@yhbt.net>
4302
- Date: Tue Oct 5 21:38:47 2010 +0000
4303
-
4304
- tests: do not invoke isolate in test install dest
4305
-
4306
- We don't want to waste time and bandwidth.
4307
-
4308
- commit ec1315c9e9175d755dfd7b4acb8398fa7c7a924e
4309
- Author: Eric Wong <normalperson@yhbt.net>
4310
- Date: Tue Oct 5 21:29:51 2010 +0000
4311
-
4312
- test_tee_input: use a socketpair()
4313
-
4314
- It's a much closer representation of what we'd expect in
4315
- the real server than a mono-directional UNIX pipe.
4316
-
4317
- commit c639eef6b9c8d793c7f72fa5ac03adb5cf4d1e14
4318
- Author: Eric Wong <normalperson@yhbt.net>
4319
- Date: Tue Oct 5 19:22:09 2010 +0000
4320
-
4321
- test_signals: enable test under Rubinius
4322
-
4323
- The bugs from signal handling were fixed in the Rubinius
4324
- 1.1.0 release.
4325
-
4326
- commit 72dee9e4a8234af762b058a38132268d202c17bf
4327
- Author: Eric Wong <normalperson@yhbt.net>
4328
- Date: Tue Oct 5 19:20:39 2010 +0000
4329
-
4330
- tmpio: use super instead of an explicit method
4331
-
4332
- This is for compatibility with Ruby implementations such as
4333
- Rubinius that use "IO.new" internally inside "IO.open"
4334
-
4335
- commit 7ca92025ececb4b71ec4420e03d5725f13c39cc4
4336
- Author: Eric Wong <normalperson@yhbt.net>
4337
- Date: Tue Oct 5 18:48:53 2010 +0000
4338
-
4339
- update comment about non-blocking accept()
4340
-
4341
- Thanks to kgio, we no longer use accept_nonblock.
4342
-
4343
- commit fc820598da30509269ec84eeca598085ca296e38
4344
- Author: Eric Wong <normalperson@yhbt.net>
4345
- Date: Tue Oct 5 08:00:34 2010 +0000
4346
-
4347
- util: uindent use less ambiguous constant scoping
4348
-
4349
- This hopefully makes things easier to read and follow.
4350
-
4351
- commit 3d147e9bcd8f99c94900a00181692c2a09c3c3c9
4352
- Author: Eric Wong <normalperson@yhbt.net>
4353
- Date: Tue Oct 5 07:54:13 2010 +0000
4354
-
4355
- Unicorn::Util.tmpio => Unicorn::TmpIO.new
4356
-
4357
- This is slightly shorter and hopefully easier to find.
4358
-
4359
- commit e184b9d0fb45b31d80645475e22f0bbbecd195f9
4360
- Author: Eric Wong <normalperson@yhbt.net>
4361
- Date: Tue Oct 5 01:27:00 2010 +0000
4362
-
4363
- doc: update TODO
4364
-
4365
- This gives us some things to think about.
4366
-
4367
- commit 29946368c45dce5da116adb426362ee93c507c4e
4368
- Author: Eric Wong <normalperson@yhbt.net>
4369
- Date: Tue Oct 5 00:13:02 2010 +0000
4370
-
4371
- start using kgio, the kinder, gentler I/O library
4372
-
4373
- This should hopefully make the non-blocking accept()
4374
- situation more tolerable under Ruby 1.9.2.
4375
-
4376
- commit 9ef6b6f551a34922cfd831e2521495e89afe2f94
4377
- Author: Eric Wong <normalperson@yhbt.net>
4378
- Date: Mon Oct 4 23:55:31 2010 +0000
4379
-
4380
- split out isolate usage/logic
4381
-
4382
- We'll be using more of Isolate in development.
4383
-
4384
- commit 018a9deff4bd9273e053f369d746256e5b3ac99b
4385
- Author: Eric Wong <normalperson@yhbt.net>
4386
- Date: Mon Oct 4 21:06:41 2010 +0000
4387
-
4388
- http_request: reformat and small reorg
4389
-
4390
- This hides more HTTP request logic inside our object.
4391
-
4392
- commit dfc5f5a5e4aec4578b79de68c91906da75472a5a
4393
- Author: Eric Wong <normalperson@yhbt.net>
4394
- Date: Wed Sep 29 23:57:57 2010 -0700
4395
-
4396
- tee_input: update interface to use HttpRequest
4397
-
4398
- This should ensure we have less typing to do.
4399
-
4400
- commit fe94d80cb37ee441762ad2a8f5c25092f8eb57a8
4401
- Author: Eric Wong <normalperson@yhbt.net>
4402
- Date: Mon Sep 27 22:39:02 2010 -0700
4403
-
4404
- http_request: avoid globals
4405
-
4406
- Rainbows! will be able to reuse this.
4407
-
4408
- commit 5b6a97ff54d029d433b79eee1549e6f99464c48b
4409
- Author: Eric Wong <normalperson@yhbt.net>
4410
- Date: Fri Aug 27 21:45:33 2010 +0000
4411
-
4412
- split out worker to a separate file
4413
-
4414
- This hopefully makes things easier to read, follow, and find
4415
- since it's mostly documentation...
4416
-
4417
- commit 50c11036dd4898ccfed8b3e0552e88c67b6c63a9
4418
- Author: Eric Wong <normalperson@yhbt.net>
4419
- Date: Fri Aug 27 20:29:55 2010 +0000
4420
-
4421
- http_response: avoid singleton method
4422
-
4423
- There's no need for a response class or object since Rack just
4424
- uses an array as the response. So use a procedural style which
4425
- allows for easier understanding.
4426
-
4427
- We shall also support keepalive/pipelining in the future, too.
4428
-
4429
- commit 7a3efe8a03f85c1f2957130986c24ef7931ff44a
4430
- Merge: 1a2363b 6151686
4431
- Author: Eric Wong <normalperson@yhbt.net>
4432
- Date: Mon Oct 4 20:34:29 2010 +0000
4433
-
4434
- Merge commit 'v1.1.4'
4435
-
4436
- * commit 'v1.1.4':
4437
- unicorn 1.1.4 - small bug fix and doc updates
4438
- update Rails 3 tests to use Rails 3 final
4439
- avoid unlinking actively listening sockets
4440
- doc: update HACKING for documentation contributions
4441
- doc: update Sandbox document for Bundler
4442
- TUNING: more on socket buffer sizes
4443
-
4444
- commit 1a2363b17b1d06be6b35d347ebcaed6a0c940200
4445
- Author: Eric Wong <normalperson@yhbt.net>
4446
- Date: Mon Oct 4 04:17:31 2010 +0000
4447
-
4448
- avoid unlinking actively listening sockets
4449
-
4450
- While we've always unlinked dead sockets from nuked/leftover
4451
- processes, blindly unlinking them can cause unnecessary failures
4452
- when an active process is already listening on them. We now
4453
- make a simple connect(2) check to ensure the socket is not in
4454
- use before unlinking it.
4455
-
4456
- Thanks to Jordan Ritter for the detailed bug report leading to
4457
- this fix.
4458
-
4459
- ref: http://mid.gmane.org/8D95A44B-A098-43BE-B532-7D74BD957F31@darkridge.com
4460
-
4461
- commit 505a9e72d320fe3ae521ceb0f381c1c0f5ae4389
4462
- Author: Eric Wong <normalperson@yhbt.net>
4463
- Date: Wed Sep 15 14:57:27 2010 -0700
4464
-
4465
- doc: update HACKING for documentation contributions
4466
-
4467
- We switched to RDoc 2.5.x long ago and this should clarify
4468
- some documentation preferences I have.
4469
-
4470
- commit 1a75966a5d1a1f6307ed3386e2f91a28bbb72ca0
4471
- Author: Eric Wong <normalperson@yhbt.net>
4472
- Date: Wed Sep 15 14:42:54 2010 -0700
4473
-
4474
- doc: update Sandbox document for Bundler
4475
-
4476
- Thanks to Lawrence Pit, Jamie Wilkinson, and Eirik Dentz Sinclair.
4477
-
4478
- ref: mid.gmane.org/4C8986DA.7090603@gmail.com
4479
- ref: mid.gmane.org/5F1A02DB-CBDA-4302-9E26-8050C2D72433@efficiency20.com
4480
-
4481
- commit f9a7a19a361fd674bab4e2df7e0897015528bba7
4482
- Author: Eric Wong <normalperson@yhbt.net>
4483
- Date: Mon Aug 30 23:25:59 2010 -0700
4484
-
4485
- TUNING: more on socket buffer sizes
4486
-
4487
- Large buffers can hurt as well as help. And the difference
4488
- in real apps that do a lot of things other than I/O often
4489
- makes it not worth it.
4490
-
4491
- commit da272fc48ffaa808456fe94dd7a3e01bc9799832
4492
- Author: Eric Wong <normalperson@yhbt.net>
4493
- Date: Mon Aug 30 08:11:44 2010 +0000
4494
-
4495
- update Rails 3 tests to use Rails 3 final
4496
-
4497
- Rails 3 is out, and requires no code changes on our end to work
4498
- (as far as our tests show :)
4499
-
4500
- commit 0aaa0afa49a2953b7c26c1596a284621e23d5fc4
4501
- Author: Eric Wong <normalperson@yhbt.net>
4502
- Date: Mon Aug 30 07:59:01 2010 +0000
4503
-
4504
- remove nasty ugly hacks at startup
4505
-
4506
- These nasty hacks were breaking Rubinius compatibility.
4507
- This can be further cleaned up, too.
4508
-
4509
- commit f3e1653b900596e054297675becd01d9985ad482
4510
- Merge: feab35f d634b06
4511
- Author: Eric Wong <normalperson@yhbt.net>
4512
- Date: Sun Aug 29 23:38:13 2010 +0000
4513
-
4514
- Merge branch '1.1.x-stable'
4515
-
4516
- * 1.1.x-stable:
4517
- unicorn 1.1.3 - small bug fixes
4518
- make log reopens even more robust in threaded apps
4519
- update Rails3 tests to use 3.0.0rc2
4520
- make log reopens more robust in multithreaded apps
4521
- bin/*: more consistent --help output
4522
- SIGTTIN works after SIGWINCH
4523
-
4524
- commit feab35fe531843066db3418598874cf9f9419614
4525
- Author: Eric Wong <normalperson@yhbt.net>
4526
- Date: Sat Aug 28 18:52:48 2010 +0000
4527
-
4528
- make log reopens even more robust in threaded apps
4529
-
4530
- A follow-up to 4b23693b9082a84433a9e6c1f358b58420176b27
4531
-
4532
- If multithreaded programming can be compared to juggling
4533
- chainsaws, then multithreaded programming with signal handlers
4534
- in play is akin to juggling chainsaws on a tightrope
4535
- over shark-infested waters.
4536
-
4537
- commit 18968f6aff2fa5ba5a7e3e3d47c9cc05cd6c260d
4538
- Author: Eric Wong <normalperson@yhbt.net>
4539
- Date: Sat Aug 28 07:07:14 2010 +0000
4540
-
4541
- update Rails3 tests to use 3.0.0rc2
4542
-
4543
- No code changes needed, thankfully.
4544
-
4545
- commit 4b23693b9082a84433a9e6c1f358b58420176b27
4546
- Author: Eric Wong <normalperson@yhbt.net>
4547
- Date: Sat Aug 28 05:30:46 2010 +0000
4548
-
4549
- make log reopens more robust in multithreaded apps
4550
-
4551
- IOError may occur due to race conditions as another thread
4552
- may close the file immediately after we call File#closed?
4553
- to check.
4554
-
4555
- Errno::EBADF may occur in some applications that close a file
4556
- descriptor without notifying Ruby (or if two IO objects refer to
4557
- the same descriptor, possibly one of them using IO#for_fd).
4558
-
4559
- commit 096afc1a8e958cc09b4ce8b3bfe76ce056c7ed69
4560
- Author: Eric Wong <normalperson@yhbt.net>
4561
- Date: Tue Aug 24 06:21:00 2010 +0000
4562
-
4563
- bin/*: more consistent --help output
4564
-
4565
- This fixes a long-standing bug in the output of "unicorn_rails"
4566
- where the program name was missing.
4567
-
4568
- commit bdc79712e5ac53d39c51e80dfe50aff950e5053f
4569
- Author: Eric Wong <normalperson@yhbt.net>
4570
- Date: Sat Aug 7 03:27:50 2010 +0000
4571
-
4572
- miscellaneous loop and begin cleanups
4573
-
4574
- These are minor changes to remove unnecessary loop nesting and
4575
- begin usage to reduce our code size and hopefully simplify
4576
- flow for readers.
4577
-
4578
- commit e4d0b226391948ef433f1d0135814315e4c48535
4579
- Author: Eric Wong <normalperson@yhbt.net>
4580
- Date: Sat Aug 7 04:25:51 2010 +0000
4581
-
4582
- log ERROR messages if workers exit with failure
4583
-
4584
- Something is wrong if workers exit with a non-zero status,
4585
- so we'll increase the log level to help prevent people
4586
- from missing it.
4587
-
4588
- commit f1d33c80dd6c5650f960f7087f4e08f809754d34
4589
- Author: Eric Wong <normalperson@yhbt.net>
4590
- Date: Fri Jul 16 08:25:32 2010 +0000
4591
-
4592
- SIGTTIN works after SIGWINCH
4593
-
4594
- In addition to SIGHUP, it should be possible to gradually bring
4595
- workers back up (to avoid overloading the machine) when rolling
4596
- back upgrades after SIGWINCH.
4597
-
4598
- Noticed-by: Lawrence Pit
4599
- ref: http://mid.gmane.org/4C3F8C9F.2090903@gmail.com
4600
-
4601
- commit 5a0506c2affd2f5abe6e7315121e67aa3e32b253
4602
- Author: Eric Wong <normalperson@yhbt.net>
4603
- Date: Fri Jul 16 08:25:32 2010 +0000
4604
-
4605
- SIGTTIN works after SIGWINCH
4606
-
4607
- In addition to SIGHUP, it should be possible to gradually bring
4608
- workers back up (to avoid overloading the machine) when rolling
4609
- back upgrades after SIGWINCH.
4610
-
4611
- Noticed-by: Lawrence Pit
4612
- ref: http://mid.gmane.org/4C3F8C9F.2090903@gmail.com
4613
- (cherry picked from commit e75ee7615f9875db314a6403964e7b69a68b0521)
4614
-
4615
- commit 78ba3899eb24d6893e34984b9f1c479c7e6c9be3
4616
- Merge: c13bec3 d1818d2
4617
- Author: Eric Wong <normalperson@yhbt.net>
4618
- Date: Tue Jul 13 13:04:53 2010 -0700
4619
-
4620
- Merge branch '1.1.x-stable'
4621
-
4622
- * 1.1.x-stable: (27 commits)
4623
- unicorn 1.1.2 - fixing upgrade rollbacks
4624
- unicorn 1.0.1 - bugfixes only
4625
- SIGHUP deals w/ dual master pid path scenario
4626
- launcher: do not re-daemonize when USR2 upgrading
4627
- SIGHUP deals w/ dual master pid path scenario
4628
- launcher: do not re-daemonize when USR2 upgrading
4629
- unicorn 1.1.1 - fixing cleanups gone bad :x
4630
- tee_input: fix constant resolution for client EOF
4631
- unicorn 1.1.0 - small changes and cleanups
4632
- cleanup "stringio" require
4633
- tee_input: safer record separator ($/) handling
4634
- prefer "[]" to "first"/"last" where possible
4635
- tee_input: safer record separator ($/) handling
4636
- socket_helper: disable documentation
4637
- socket_helper: cleanup FreeBSD accf_* detection
4638
- socket_helper: no reason to check for logger method
4639
- configurator: cleanup RDoc, un-indent
4640
- configurator: documentation for new accept options
4641
- socket_helper: move defaults to the DEFAULTS constant
4642
- doc: recommend absolute paths for -c/--config-file
4643
- ...
4644
-
4645
- commit c13bec3449396b21795966101367838161612d61
4646
- Author: Eric Wong <normalperson@yhbt.net>
4647
- Date: Tue Jul 13 08:57:37 2010 +0000
4648
-
4649
- SIGHUP deals w/ dual master pid path scenario
4650
-
4651
- As described in our SIGNALS documentation, sending SIGHUP to the
4652
- old master (to respawn SIGWINCH-ed children) while the new
4653
- master (spawned from SIGUSR2) is active is useful for backing
4654
- out of an upgrade before sending SIGQUIT to the new master.
4655
-
4656
- Unfortunately, the SIGHUP signal to the old master will cause
4657
- the ".oldbin" pid file to be reset to the non-".oldbin" version
4658
- and thus attempt to clobber the pid file in use by the
4659
- to-be-terminated new master process.
4660
-
4661
- Thanks to the previous commit to prevent redaemonization in the
4662
- new master, the old master can reliably detect if the new master
4663
- is active while it is reloading the config file.
4664
-
4665
- Thanks to Lawrence Pit for discovering this bug.
4666
- ref: http://mid.gmane.org/4C3BEACF.7040301@gmail.com
4667
-
4668
- commit 3f0f9d6d72cf17b34c130b86eb933bbc513b24b3
4669
- Author: Eric Wong <normalperson@yhbt.net>
4670
- Date: Tue Jul 13 08:53:48 2010 +0000
4671
-
4672
- launcher: do not re-daemonize when USR2 upgrading
4673
-
4674
- This was accidentally enabled when ready_pipe was developed.
4675
- While re-daemonizing appears harmless in most cases this makes
4676
- detecting backed-out upgrades from the original master process
4677
- impossible.
4678
-
4679
- commit ac15513bb81a345cd12c67702a81a585b8b0514e
4680
- Author: Eric Wong <normalperson@yhbt.net>
4681
- Date: Sun Jul 11 02:05:01 2010 +0000
4682
-
4683
- tee_input: fix constant resolution for client EOF
4684
-
4685
- Noticed while hacking on a Zbatery-using application
4686
-
4687
- commit 0fea004ab093ec4f59d919915a505a136326bd8a
4688
- Author: Eric Wong <normalperson@yhbt.net>
4689
- Date: Thu Jul 8 05:54:25 2010 +0000
4690
-
4691
- cleanup "stringio" require
4692
-
4693
- "stringio" is part of the Ruby distro and we use it in multiple
4694
- places, so avoid re-requiring it.
4695
-
4696
- commit 5ece8c1c33f10e6496dfe5ae1d0d368293278d2d
4697
- Author: Eric Wong <normalperson@yhbt.net>
4698
- Date: Thu Jul 8 05:33:49 2010 +0000
4699
-
4700
- prefer "[]" to "first"/"last" where possible
4701
-
4702
- "[]" is slightly faster under Ruby 1.9 (but slightly
4703
- slower under 1.8).
4704
-
4705
- commit 1cd698f8c7938b1f19e9ba091708cb4515187939
4706
- Author: Eric Wong <normalperson@yhbt.net>
4707
- Date: Thu Jul 8 05:14:55 2010 +0000
4708
-
4709
- tee_input: safer record separator ($/) handling
4710
-
4711
- Different threads may change $/ during execution, so cache it at
4712
- function entry to a local variable for safety. $/ may also be
4713
- of a non-binary encoding, so rely on Rack::Utils.bytesize to
4714
- portably capture the correct size.
4715
-
4716
- Our string slicing is always safe from 1.9 encoding: both our
4717
- socket and backing temporary file are opened in binary mode,
4718
- so we'll always be dealing with binary strings in this class
4719
- (in accordance to the Rack spec).
4720
-
4721
- commit 98c51edf8b6f031a655a93b52808c9f9b78fb6fa
4722
- Author: Eric Wong <normalperson@yhbt.net>
4723
- Date: Tue Jul 6 14:17:02 2010 -0700
4724
-
4725
- socket_helper: disable documentation for internals
4726
-
4727
- commit 2b4b15cf513f66dc7a5aabaae4491c17895c288c
4728
- Author: Eric Wong <normalperson@yhbt.net>
4729
- Date: Tue Jul 6 12:59:45 2010 -0700
4730
-
4731
- socket_helper: cleanup FreeBSD accf_* detection
4732
-
4733
- Instead of detecting at startup if filters may be used, just try
4734
- anyways and log the error. It is better to ask for forgiveness
4735
- than permission :)
4736
-
4737
- commit e0ea1e1548a807d152c0ffc175915e98addfe1f2
4738
- Author: Eric Wong <normalperson@yhbt.net>
4739
- Date: Tue Jul 6 12:51:24 2010 -0700
4740
-
4741
- socket_helper: no reason to check for logger method
4742
-
4743
- We only use this module in HttpServer and our unit test mocks
4744
- it properly.
4745
-
4746
- commit e4d2c7c302e96ee504d82376885ac6b1897c666a
4747
- Author: Eric Wong <normalperson@yhbt.net>
4748
- Date: Tue Jul 6 12:49:48 2010 -0700
4749
-
4750
- configurator: cleanup RDoc, un-indent
4751
-
4752
- No point in redeclaring the Unicorn module in here.
4753
-
4754
- commit 686281a90a9b47bac4dfd32a72a97e6e8d26afa1
4755
- Author: Eric Wong <normalperson@yhbt.net>
4756
- Date: Tue Jul 6 12:39:36 2010 -0700
4757
-
4758
- configurator: documentation for new accept options
4759
-
4760
- The defaults should be reasonable, but there may be
4761
- folks who want to experiment.
4762
-
4763
- commit ef8f888ba1bacc759156f7336d39ba9b947e3f9d
4764
- Author: Eric Wong <normalperson@yhbt.net>
4765
- Date: Tue Jul 6 12:35:45 2010 -0700
4766
-
4767
- socket_helper: move defaults to the DEFAULTS constant
4768
-
4769
- This is to allow Rainbows! to override the defaults.
4770
-
4771
- commit d7695c25c5e3b1c90e63bf15a5c5fdf68bfd0c34
4772
- Author: Eric Wong <normalperson@yhbt.net>
4773
- Date: Mon Jul 5 23:14:40 2010 +0000
4774
-
4775
- doc: recommend absolute paths for -c/--config-file
4776
-
4777
- Suggested-by: Jeremy Evans
4778
- ref: http://mid.gmane.org/AANLkTintT4vHGEdueuG45_RwJqFCToHi5pm2-WKDSUMz@mail.gmail.com
4779
-
4780
- commit 646cc762cc9297510102fc094f3af8a5a9e296c7
4781
- Author: Eric Wong <normalperson@yhbt.net>
4782
- Date: Sat Jul 3 09:30:57 2010 +0000
4783
-
4784
- socket_helper: tunables for tcp_defer_accept/accept_filter
4785
-
4786
- Under Linux, this allows users to tune the time (in seconds) to
4787
- defer connections before allowing them to be accepted. The
4788
- behavior of TCP_DEFER_ACCEPT changed with Linux 2.6.32 and idle
4789
- connections may still be accept()-ed after the specified value
4790
- in seconds. A small value of '1' remains the default for
4791
- Unicorn as Unicorn does not worry about slow clients. Higher
4792
- values provide better DoS protection for Rainbows! but also
4793
- increases kernel memory usage.
4794
-
4795
- Allowing "dataready" for FreeBSD accept filters will allow
4796
- SSL sockets to be used in the future for HTTPS, too.
4797
-
4798
- commit 5769f313793ca84100f089b1911f2e22d0a31e9d
4799
- Author: Eric Wong <normalperson@yhbt.net>
4800
- Date: Mon Jun 28 04:45:16 2010 +0000
4801
-
4802
- http_response: this should be a module, not a class
4803
-
4804
- This affects Rainbows!, but Rainbows! is still using the Unicorn
4805
- 1.x branch. While we're at it, avoid redeclaring the "Unicorn"
4806
- module, it makes documentation noisier.
4807
-
4808
- commit cf63db66bca9acfd3416ab8fc8a7fd4f07927342
4809
- Author: Eric Wong <normalperson@yhbt.net>
4810
- Date: Fri Jun 25 11:29:13 2010 -0700
4811
-
4812
- test-exec: prefer ENV['PWD'] in working_directory tests
4813
-
4814
- We do an extra check in the application dispatch to ensure
4815
- ENV['PWD'] is set correctly to match Dir.pwd (even if the
4816
- string path is different) as this is required for Capistrano
4817
- deployments.
4818
-
4819
- These tests should now pass under OSX where /var is apparently
4820
- a symlink to /private/var.
4821
-
4822
- commit e2503a78150f4be113ee2a19404ba6aec401c696
4823
- Author: Eric Wong <normalperson@yhbt.net>
4824
- Date: Thu Jun 24 05:47:27 2010 +0000
4825
-
4826
- const: bump UNICORN_VERSION to 2.0.0pre
4827
-
4828
- commit b8b979d75519be1c84818f32b83d85f8ec5f6072
4829
- Author: Eric Wong <normalperson@yhbt.net>
4830
- Date: Thu Jun 24 04:31:37 2010 +0000
4831
-
4832
- http: avoid (re-)declaring the Unicorn module
4833
-
4834
- It makes for messy documentation.
4835
-
4836
- commit 6f720afd95d8131a2657c643b97cb18c750ed9f8
4837
- Author: Eric Wong <normalperson@yhbt.net>
4838
- Date: Thu Jun 24 04:24:34 2010 +0000
4839
-
4840
- tee_input: undent, avoid (re)-declaring "module Unicorn"
4841
-
4842
- It makes RDoc look better and cleaner, since we don't
4843
- do anything in the Unicorn namespace.
4844
-
4845
- commit 9f48be69bfe579dab02b5fe8d6e728ae63fd24fc
4846
- Author: Eric Wong <normalperson@yhbt.net>
4847
- Date: Thu Jun 24 04:11:35 2010 +0000
4848
-
4849
- tee_input: allow tuning of client_body_buffer_size/io_size
4850
-
4851
- Some folks may require more fine-grained control of buffering
4852
- and I/O chunk sizes, so we'll support them (unofficially, for
4853
- now).
4854
-
4855
- commit 1a49a8295054a2e931f5288540acb858be8edcc8
4856
- Author: Eric Wong <normalperson@yhbt.net>
4857
- Date: Thu Jun 24 03:54:40 2010 +0000
4858
-
4859
- tee_input: (nitpick) use IO#rewind instead of IO#seek(0)
4860
-
4861
- no need to pass an extra argument