piesync-puma 3.12.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/History.md +1429 -0
  3. data/LICENSE +26 -0
  4. data/README.md +280 -0
  5. data/bin/puma +10 -0
  6. data/bin/puma-wild +31 -0
  7. data/bin/pumactl +12 -0
  8. data/docs/architecture.md +36 -0
  9. data/docs/deployment.md +91 -0
  10. data/docs/images/puma-connection-flow-no-reactor.png +0 -0
  11. data/docs/images/puma-connection-flow.png +0 -0
  12. data/docs/images/puma-general-arch.png +0 -0
  13. data/docs/nginx.md +80 -0
  14. data/docs/plugins.md +28 -0
  15. data/docs/restart.md +39 -0
  16. data/docs/signals.md +96 -0
  17. data/docs/systemd.md +272 -0
  18. data/ext/puma_http11/PumaHttp11Service.java +17 -0
  19. data/ext/puma_http11/ext_help.h +15 -0
  20. data/ext/puma_http11/extconf.rb +15 -0
  21. data/ext/puma_http11/http11_parser.c +1071 -0
  22. data/ext/puma_http11/http11_parser.h +65 -0
  23. data/ext/puma_http11/http11_parser.java.rl +161 -0
  24. data/ext/puma_http11/http11_parser.rl +149 -0
  25. data/ext/puma_http11/http11_parser_common.rl +54 -0
  26. data/ext/puma_http11/io_buffer.c +155 -0
  27. data/ext/puma_http11/mini_ssl.c +494 -0
  28. data/ext/puma_http11/org/jruby/puma/Http11.java +234 -0
  29. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +470 -0
  30. data/ext/puma_http11/org/jruby/puma/MiniSSL.java +352 -0
  31. data/ext/puma_http11/puma_http11.c +500 -0
  32. data/lib/puma.rb +23 -0
  33. data/lib/puma/accept_nonblock.rb +23 -0
  34. data/lib/puma/app/status.rb +74 -0
  35. data/lib/puma/binder.rb +413 -0
  36. data/lib/puma/cli.rb +235 -0
  37. data/lib/puma/client.rb +480 -0
  38. data/lib/puma/cluster.rb +531 -0
  39. data/lib/puma/commonlogger.rb +108 -0
  40. data/lib/puma/compat.rb +14 -0
  41. data/lib/puma/configuration.rb +361 -0
  42. data/lib/puma/const.rb +239 -0
  43. data/lib/puma/control_cli.rb +264 -0
  44. data/lib/puma/convenient.rb +25 -0
  45. data/lib/puma/daemon_ext.rb +33 -0
  46. data/lib/puma/delegation.rb +13 -0
  47. data/lib/puma/detect.rb +15 -0
  48. data/lib/puma/dsl.rb +518 -0
  49. data/lib/puma/events.rb +153 -0
  50. data/lib/puma/io_buffer.rb +9 -0
  51. data/lib/puma/java_io_buffer.rb +47 -0
  52. data/lib/puma/jruby_restart.rb +84 -0
  53. data/lib/puma/launcher.rb +433 -0
  54. data/lib/puma/minissl.rb +285 -0
  55. data/lib/puma/null_io.rb +44 -0
  56. data/lib/puma/plugin.rb +117 -0
  57. data/lib/puma/plugin/tmp_restart.rb +34 -0
  58. data/lib/puma/rack/backports/uri/common_193.rb +33 -0
  59. data/lib/puma/rack/builder.rb +299 -0
  60. data/lib/puma/rack/urlmap.rb +91 -0
  61. data/lib/puma/rack_default.rb +7 -0
  62. data/lib/puma/reactor.rb +347 -0
  63. data/lib/puma/runner.rb +184 -0
  64. data/lib/puma/server.rb +1072 -0
  65. data/lib/puma/single.rb +123 -0
  66. data/lib/puma/state_file.rb +31 -0
  67. data/lib/puma/tcp_logger.rb +41 -0
  68. data/lib/puma/thread_pool.rb +346 -0
  69. data/lib/puma/util.rb +129 -0
  70. data/lib/rack/handler/puma.rb +115 -0
  71. data/tools/jungle/README.md +19 -0
  72. data/tools/jungle/init.d/README.md +61 -0
  73. data/tools/jungle/init.d/puma +421 -0
  74. data/tools/jungle/init.d/run-puma +18 -0
  75. data/tools/jungle/rc.d/README.md +74 -0
  76. data/tools/jungle/rc.d/puma +61 -0
  77. data/tools/jungle/rc.d/puma.conf +10 -0
  78. data/tools/jungle/upstart/README.md +61 -0
  79. data/tools/jungle/upstart/puma-manager.conf +31 -0
  80. data/tools/jungle/upstart/puma.conf +69 -0
  81. data/tools/trickletest.rb +45 -0
  82. metadata +131 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 32ea4021b4f973ad65aeff1fe1f964ea278cae573322f7161a5daf4c4971925b
4
+ data.tar.gz: 9ef8a09b32dc4ad5f83cf9fad51c0b1b2d419fe56a13a823f7454f529f09b808
5
+ SHA512:
6
+ metadata.gz: 799ca4d34a7a6341de0e657c38557d1c70b04c35a96ccadcf73b2d4cbd6156d245ef6f2f8f96c1e2381bada2c7e5590ed492fdca05a5c4dd1234a9068ade62cd
7
+ data.tar.gz: 3413cf8c33a347632833d2b3aa12a5fac4ea280fcd0fcaca8f317a06bbd9066035209b59a4a8323eb398c35ab74071591a163545ca45cef48f1ba77796cd5745
@@ -0,0 +1,1429 @@
1
+ ## Master
2
+
3
+ * x features
4
+
5
+ * x bugfixes
6
+
7
+
8
+ ## 4.3.3 and 3.12.4 / 2020-02-28
9
+ * Bugfixes
10
+ * Fix: Fixes a problem where we weren't splitting headers correctly on newlines (#2132)
11
+ * Security
12
+ * Fix: Prevent HTTP Response splitting via CR in early hints.
13
+
14
+ ## 4.3.2 and 3.12.3 / 2020-02-27
15
+
16
+ * Security
17
+ * Fix: Prevent HTTP Response splitting via CR/LF in header values. CVE-2020-5247.
18
+
19
+ ## 4.3.1 and 3.12.2 / 2019-12-05
20
+
21
+ * Security
22
+ * Fix: a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. CVE-2019-16770.
23
+
24
+ ## 3.12.1 / 2019-03-19
25
+
26
+ * 1 features
27
+ * Internal strings are frozen (#1649)
28
+ * 3 bugfixes
29
+ * Fix chunked ending check (#1607)
30
+ * Rack handler should use provided default host (#1700)
31
+ * Better support for detecting runtimes that support `fork` (#1630)
32
+
33
+ ## 3.12.0 / 2018-07-13
34
+
35
+ * 5 features:
36
+ * You can now specify which SSL ciphers the server should support, default is unchanged (#1478)
37
+ * The setting for Puma's `max_threads` is now in `Puma.stats` (#1604)
38
+ * Pool capacity is now in `Puma.stats` (#1579)
39
+ * Installs restricted to Ruby 2.2+ (#1506)
40
+ * `--control` is now deprecated in favor of `--control-url` (#1487)
41
+
42
+ * 2 bugfixes:
43
+ * Workers will no longer accept more web requests than they have capacity to process. This prevents an issue where one worker would accept lots of requests while starving other workers (#1563)
44
+ * In a test env puma now emits the stack on an exception (#1557)
45
+
46
+ ## 3.11.4 / 2018-04-12
47
+
48
+ * 2 features:
49
+ * Manage puma as a service using rc.d (#1529)
50
+ * Server stats are now available from a top level method (#1532)
51
+ * 5 bugfixes:
52
+ * Fix parsing CLI options (#1482)
53
+ * Order of stderr and stdout is made before redirecting to a log file (#1511)
54
+ * Init.d fix of `ps -p` to check if pid exists (#1545)
55
+ * Early hints bugfix (#1550)
56
+ * Purge interrupt queue when closing socket fails (#1553)
57
+
58
+ ## 3.11.3 / 2018-03-05
59
+
60
+ * 3 bugfixes:
61
+ * Add closed? to MiniSSL::Socket for use in reactor (#1510)
62
+ * Handle EOFError at the toplevel of the server threads (#1524) (#1507)
63
+ * Deal with zero sized bodies when using SSL (#1483)
64
+
65
+ ## 3.11.2 / 2018-01-19
66
+
67
+ * 1 bugfix:
68
+ * Deal with read\_nonblock returning nil early
69
+
70
+ ## 3.11.1 / 2018-01-18
71
+
72
+ * 1 bugfix:
73
+ * Handle read\_nonblock returning nil when the socket close (#1502)
74
+
75
+ ## 3.11.0 / 2017-11-20
76
+
77
+ * 2 features:
78
+ * HTTP 103 Early Hints (#1403)
79
+ * 421/451 status codes now have correct status messages attached (#1435)
80
+
81
+ * 9 bugfixes:
82
+ * Environment config files (/config/puma/<ENV>.rb) load correctly (#1340)
83
+ * Specify windows dependencies correctly (#1434, #1436)
84
+ * puma/events required in test helper (#1418)
85
+ * Correct control CLI's option help text (#1416)
86
+ * Remove a warning for unused variable in mini_ssl (#1409)
87
+ * Correct pumactl docs argument ordering (#1427)
88
+ * Fix an uninitialized variable warning in server.rb (#1430)
89
+ * Fix docs typo/error in Launcher init (#1429)
90
+ * Deal with leading spaces in RUBYOPT (#1455)
91
+
92
+ * 2 other:
93
+ * Add docs about internals (#1425, #1452)
94
+ * Tons of test fixes from @MSP-Greg (#1439, #1442, #1464)
95
+
96
+ ## 3.10.0 / 2017-08-17
97
+
98
+ * 3 features:
99
+ * The status server has a new /gc and /gc-status command. (#1384)
100
+ * The persistent and first data timeouts are now configurable (#1111)
101
+ * Implemented RFC 2324 (#1392)
102
+
103
+ * 12 bugfixes:
104
+ * Not really a Puma bug, but @NickolasVashchenko created a gem to workaround a Ruby bug that some users of Puma may be experiencing. See README for more. (#1347)
105
+ * Fix hangups with SSL and persistent connections. (#1334)
106
+ * Fix Rails double-binding to a port (#1383)
107
+ * Fix incorrect thread names (#1368)
108
+ * Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. (#1318)
109
+ * Fix compatibility with RUBYOPT="--enable-frozen-string-literal" (#1376)
110
+ * Fixed some compiler warnings (#1388)
111
+ * We actually run the integration tests in CI now (#1390)
112
+ * No longer shipping unnecessary directories in the gemfile (#1391)
113
+ * If RUBYOPT is nil, we no longer blow up on restart. (#1385)
114
+ * Correct response to SIGINT (#1377)
115
+ * Proper exit code returned when we receive a TERM signal (#1337)
116
+
117
+ * 3 refactors:
118
+ * Various test improvements from @grosser
119
+ * Rubocop (#1325)
120
+ * Hoe has been removed (#1395)
121
+
122
+ * 1 known issue:
123
+ * Socket activation doesn't work in JRuby. Their fault, not ours. (#1367)
124
+
125
+ ## 3.9.1 / 2017-06-03
126
+
127
+ * 2 bugfixes:
128
+ * Fixed compatibility with older Bundler versions (#1314)
129
+ * Some internal test/development cleanup (#1311, #1313)
130
+
131
+ ## 3.9.0 / 2017-06-01
132
+
133
+ * 2 features:
134
+ * The ENV is now reset to its original values when Puma restarts via USR1/USR2 (#1260) (MRI only, no JRuby support)
135
+ * Puma will no longer accept more clients than the maximum number of threads. (#1278)
136
+
137
+ * 9 bugfixes:
138
+ * Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR (#1306)
139
+ * Fix SSL/WebSocket compatibility (#1274)
140
+ * HTTP headers with empty values are no longer omitted from responses. (#1261)
141
+ * Fix a Rack env key which was set to nil. (#1259)
142
+ * peercert has been implemented for JRuby (#1248)
143
+ * Fix port settings when using rails s (#1277, #1290)
144
+ * Fix compat w/LibreSSL (#1285)
145
+ * Fix restarting Puma w/symlinks and a new Gemfile (#1282)
146
+ * Replace Dir.exists? with Dir.exist? (#1294)
147
+
148
+ * 1 known issue:
149
+ * A bug in MRI 2.2+ can result in IOError: stream closed. See #1206. This issue has existed since at least Puma 3.6, and probably further back.
150
+
151
+ * 1 refactor:
152
+ * Lots of test fixups from @grosser.
153
+
154
+ ## 3.8.2 / 2017-03-14
155
+
156
+ * 1 bugfix:
157
+ * Deal with getsockopt with TCP\_INFO failing for sockets that say they're TCP but aren't really. (#1241)
158
+
159
+ ## 3.8.1 / 2017-03-10
160
+
161
+ * 1 bugfix:
162
+ * Remove method call to method that no longer exists (#1239)
163
+
164
+ ## 3.8.0 / 2017-03-09
165
+
166
+ * 2 bugfixes:
167
+ * Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ (#1234)
168
+ * The `tmp/restart.txt` plugin no longer restricts the user from running more than one server from the same folder at a time (#1226)
169
+
170
+ * 1 feature:
171
+ * Closed clients are aborted to save capacity (#1227)
172
+
173
+ * 1 refactor:
174
+ * Bundler is no longer a dependency from tests (#1213)
175
+
176
+ ## 3.7.1 / 2017-02-20
177
+
178
+ * 2 bugfixes:
179
+ * Fix typo which blew up MiniSSL (#1182)
180
+ * Stop overriding command-line options with the config file (#1203)
181
+
182
+ ## 3.7.0 / 2017-01-04
183
+
184
+ * 6 minor features:
185
+ * Allow rack handler to accept ssl host. (#1129)
186
+ * Refactor TTOU processing. TTOU now handles multiple signals at once. (#1165)
187
+ * Pickup any remaining chunk data as the next request.
188
+ * Prevent short term thread churn - increased auto trim default to 30 seconds.
189
+ * Raise error when `stdout` or `stderr` is not writable. (#1175)
190
+ * Add Rack 2.0 support to gemspec. (#1068)
191
+
192
+ * 5 refactors:
193
+ * Compare host and server name only once per call. (#1091)
194
+ * Minor refactor on Thread pool (#1088)
195
+ * Removed a ton of unused constants, variables and files.
196
+ * Use MRI macros when allocating heap memory
197
+ * Use hooks for on\_booted event. (#1160)
198
+
199
+ * 14 bugfixes:
200
+ * Add eof? method to NullIO? (#1169)
201
+ * Fix Puma startup in provided init.d script (#1061)
202
+ * Fix default SSL mode back to none. (#1036)
203
+ * Fixed the issue of @listeners getting nil io (#1120)
204
+ * Make `get_dh1024` compatible with OpenSSL v1.1.0 (#1178)
205
+ * More gracefully deal with SSL sessions. Fixes #1002
206
+ * Move puma.rb to just autoloads. Fixes #1063
207
+ * MiniSSL: Provide write as <<. Fixes #1089
208
+ * Prune bundler should inherit fds (#1114)
209
+ * Replace use of Process.getpgid which does not behave as intended on all platforms (#1110)
210
+ * Transfer encoding header should be downcased before comparison (#1135)
211
+ * Use same write log logic for hijacked requests. (#1081)
212
+ * Fix `uninitialized constant Puma::StateFile` (#1138)
213
+ * Fix access priorities of each level in LeveledOptions (#1118)
214
+
215
+ * 3 others:
216
+
217
+ * Lots of tests added/fixed/improved. Switched to Minitest from Test::Unit. Big thanks to @frodsan.
218
+ * Lots of documentation added/improved.
219
+ * Add license indicators to the HTTP extension. (#1075)
220
+
221
+ ## 3.6.2 / 2016-11-22
222
+
223
+ * 1 bug fix:
224
+
225
+ * Revert #1118/Fix access priorities of each level in LeveledOptions. This
226
+ had an unintentional side effect of changing the importance of command line
227
+ options, such as -p.
228
+
229
+ ## 3.6.1 / 2016-11-21
230
+
231
+ * 8 bug fixes:
232
+
233
+ * Fix Puma start in init.d script.
234
+ * Fix default SSL mode back to none. Fixes #1036
235
+ * Fixed the issue of @listeners getting nil io, fix rails restart (#1120)
236
+ * More gracefully deal with SSL sessions. Fixes #1002
237
+ * Prevent short term thread churn.
238
+ * Provide write as <<. Fixes #1089
239
+ * Fix access priorities of each level in LeveledOptions - fixes TTIN.
240
+ * Stub description files updated for init.d.
241
+
242
+ * 2 new project committers:
243
+
244
+ * Nate Berkopec (@nateberkopec)
245
+ * Richard Schneeman (@schneems)
246
+
247
+ ## 3.6.0 / 2016-07-24
248
+
249
+ * 12 bug fixes:
250
+ * Add ability to detect a shutting down server. Fixes #932
251
+ * Add support for Expect: 100-continue. Fixes #519
252
+ * Check SSLContext better. Fixes #828
253
+ * Clarify behavior of '-t num'. Fixes #984
254
+ * Don't default to VERIFY_PEER. Fixes #1028
255
+ * Don't use ENV['PWD'] on windows. Fixes #1023
256
+ * Enlarge the scope of catching app exceptions. Fixes #1027
257
+ * Execute background hooks after daemonizing. Fixes #925
258
+ * Handle HUP as a stop unless there is IO redirection. Fixes #911
259
+ * Implement chunked request handling. Fixes #620
260
+ * Just rescue exception to return a 500. Fixes #1027
261
+ * Redirect IO in the jruby daemon mode. Fixes #778
262
+
263
+ ## 3.5.2 / 2016-07-20
264
+
265
+ * 1 bug fix:
266
+ * Don't let persistent_timeout be nil
267
+
268
+ * 1 PR merged:
269
+ * Merge pull request #1021 from benzrf/patch-1
270
+
271
+ ## 3.5.1 / 2016-07-20
272
+
273
+ * 1 bug fix:
274
+ * Be sure to only listen on host:port combos once. Fixes #1022
275
+
276
+ ## 3.5.0 / 2016-07-18
277
+
278
+ * 1 minor features:
279
+ * Allow persistent_timeout to be configured via the dsl.
280
+
281
+ * 9 bug fixes:
282
+ * Allow a bare % in a query string. Fixes #958
283
+ * Explicitly listen on all localhost addresses. Fixes #782
284
+ * Fix `TCPLogger` log error in tcp cluster mode.
285
+ * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
286
+ * Fix puma/puma#968 Default verify_mode to peer
287
+ * Log any exceptions in ThreadPool. Fixes #1010
288
+ * Silence connection errors in the reactor. Fixes #959
289
+ * Tiny fixes in hook documentation for #840
290
+ * It should not log requests if we want it to be quiet
291
+
292
+ * 5 doc fixes:
293
+ * Add How to stop Puma on Heroku using plugins to the example directory
294
+ * Provide both hot and phased restart in jungle script
295
+ * Update reference to the instances management script
296
+ * Update default number of threads
297
+ * Fix typo in example config
298
+
299
+ * 14 PRs merged:
300
+ * Merge pull request #1007 from willnet/patch-1
301
+ * Merge pull request #1014 from jeznet/patch-1
302
+ * Merge pull request #1015 from bf4/patch-1
303
+ * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
304
+ * Merge pull request #954 from jf/master
305
+ * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
306
+ * Merge pull request #956 from maxkwallace/master
307
+ * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
308
+ * Merge pull request #969 from frankwong15/master
309
+ * Merge pull request #970 from willnet/delete-blank-document
310
+ * Merge pull request #974 from rocketjob/feature/name_threads
311
+ * Merge pull request #977 from snow/master
312
+ * Merge pull request #981 from zach-chai/patch-1
313
+ * Merge pull request #993 from scorix/master
314
+
315
+ ## 3.4.0 / 2016-04-07
316
+
317
+ * 2 minor features:
318
+ * Add ability to force threads to stop on shutdown. Fixes #938
319
+ * Detect and commit seppuku when fork(2) fails. Fixes #529
320
+
321
+ * 3 unknowns:
322
+ * Ignore errors trying to update the backport tables. Fixes #788
323
+ * Invoke the lowlevel_error in more places to allow for exception tracking. Fixes #894
324
+ * Update the query string when an absolute URI is used. Fixes #937
325
+
326
+ * 5 doc fixes:
327
+ * Add Process Monitors section to top-level README
328
+ * Better document the hooks. Fixes #840
329
+ * docs/system.md sample config refinements and elaborations
330
+ * Fix typos at couple of places.
331
+ * Cleanup warnings
332
+
333
+ * 3 PRs merged:
334
+ * Merge pull request #945 from dekellum/systemd-docs-refined
335
+ * Merge pull request #946 from vipulnsward/rm-pid
336
+ * Merge pull request #947 from vipulnsward/housekeeping-typos
337
+
338
+ ## 3.3.0 / 2016-04-05
339
+
340
+ * 2 minor features:
341
+ * Allow overriding options of Configuration object
342
+ * Rename to inherit_ssl_listener like inherit_tcp|unix
343
+
344
+ * 2 doc fixes:
345
+ * Add docs/systemd.md (with socket activation sub-section)
346
+ * Document UNIX signals with cluster on README.md
347
+
348
+ * 3 PRs merged:
349
+ * Merge pull request #936 from prathamesh-sonpatki/allow-overriding-config-options
350
+ * Merge pull request #940 from kyledrake/signalsdoc
351
+ * Merge pull request #942 from dekellum/socket-activate-improve
352
+
353
+ ## 3.2.0 / 2016-03-20
354
+
355
+ * 1 deprecation removal:
356
+ * Delete capistrano.rb
357
+
358
+ * 3 bug fixes:
359
+ * Detect gems.rb as well as Gemfile
360
+ * Simplify and fix logic for directory to use when restarting for all phases
361
+ * Speed up phased-restart start
362
+
363
+ * 2 PRs merged:
364
+ * Merge pull request #927 from jlecour/gemfile_variants
365
+ * Merge pull request #931 from joneslee85/patch-10
366
+
367
+ ## 3.1.1 / 2016-03-17
368
+
369
+ * 4 bug fixes:
370
+ * Disable USR1 usage on JRuby
371
+ * Fixes #922 - Correctly define file encoding as UTF-8
372
+ * Set a more explicit SERVER_SOFTWARE Rack variable
373
+ * Show RUBY_ENGINE_VERSION if available. Fixes #923
374
+
375
+ * 3 PRs merged:
376
+ * Merge pull request #912 from tricknotes/fix-allow-failures-in-travis-yml
377
+ * Merge pull request #921 from swrobel/patch-1
378
+ * Merge pull request #924 from tbrisker/patch-1
379
+
380
+ ## 3.1.0 / 2016-03-05
381
+
382
+ * 1 minor feature:
383
+ * Add 'import' directive to config file. Fixes #916
384
+
385
+ * 5 bug fixes:
386
+ * Add 'fetch' to options. Fixes #913
387
+ * Fix jruby daemonization. Fixes #918
388
+ * Recreate the proper args manually. Fixes #910
389
+ * Require 'time' to get iso8601. Fixes #914
390
+
391
+ ## 3.0.2 / 2016-02-26
392
+
393
+ * 5 bug fixes:
394
+
395
+ * Fix 'undefined local variable or method `pid` for #<Puma::ControlCLI:0x007f185fcef968>' when execute pumactl with `--pid` option.
396
+ * Fix 'undefined method `windows?` for Puma:Module' when execute pumactl.
397
+ * Harden tmp_restart against errors related to the restart file
398
+ * Make `plugin :tmp_restart` behavior correct in Windows.
399
+ * fix uninitialized constant Puma::ControlCLI::StateFile
400
+
401
+ * 3 PRs merged:
402
+
403
+ * Merge pull request #901 from mitto/fix-pumactl-uninitialized-constant-statefile
404
+ * Merge pull request #902 from corrupt952/fix_undefined_method_and_variable_when_execute_pumactl
405
+ * Merge pull request #905 from Eric-Guo/master
406
+
407
+ ## 3.0.1 / 2016-02-25
408
+
409
+ * 1 bug fix:
410
+
411
+ * Removed the experimental support for async.callback as it broke
412
+ websockets entirely. Seems no server has both hijack and async.callback
413
+ and thus faye is totally confused what to do and doesn't work.
414
+
415
+ ## 3.0.0 / 2016-02-25
416
+
417
+ * 2 major changes:
418
+
419
+ * Ruby pre-2.0 is no longer supported. We'll do our best to not add
420
+ features that break those rubies but will no longer be testing
421
+ with them.
422
+ * Don't log requests by default. Fixes #852
423
+
424
+ * 2 major features:
425
+
426
+ * Plugin support! Plugins can interact with configuration as well
427
+ as provide augment server functionality!
428
+ * Experimental env['async.callback'] support
429
+
430
+ * 4 minor features:
431
+
432
+ * Listen to unix socket with provided backlog if any
433
+ * Improves the clustered stats to report worker stats
434
+ * Pass the env to the lowlevel_error handler. Fixes #854
435
+ * Treat path-like hosts as unix sockets. Fixes #824
436
+
437
+ * 5 bug fixes:
438
+
439
+ * Clean thread locals when using keepalive. Fixes #823
440
+ * Cleanup compiler warnings. Fixes #815
441
+ * Expose closed? for use by the reactor. Fixes #835
442
+ * Move signal handlers to separate method to prevent space leak. Fixes #798
443
+ * Signal not full on worker exit #876
444
+
445
+ * 5 doc fixes:
446
+
447
+ * Update README.md with various grammar fixes
448
+ * Use newest version of Minitest
449
+ * Add directory configuration docs, fix typo [ci skip]
450
+ * Remove old COPYING notice. Fixes #849
451
+
452
+ * 10 merged PRs:
453
+
454
+ * Merge pull request #871 from deepj/travis
455
+ * Merge pull request #874 from wallclockbuilder/master
456
+ * Merge pull request #883 from dadah89/igor/trim_only_worker
457
+ * Merge pull request #884 from uistudio/async-callback
458
+ * Merge pull request #888 from mlarraz/tick_minitest
459
+ * Merge pull request #890 from todd/directory_docs
460
+ * Merge pull request #891 from ctaintor/improve_clustered_status
461
+ * Merge pull request #893 from spastorino/add_missing_require
462
+ * Merge pull request #897 from zendesk/master
463
+ * Merge pull request #899 from kch/kch-readme-fixes
464
+
465
+ ## 2.16.0 / 2016-01-27
466
+
467
+ * 7 minor features:
468
+
469
+ * Add 'set_remote_address' config option
470
+ * Allow to run puma in silent mode
471
+ * Expose cli options in DSL
472
+ * Support passing JRuby keystore info in ssl_bind DSL
473
+ * Allow umask for unix:/// style control urls
474
+ * Expose `old_worker_count` in stats url
475
+ * Support TLS client auth (verify_mode) in jruby
476
+
477
+ * 7 bug fixes:
478
+
479
+ * Don't persist before_fork hook in state file
480
+ * Reload bundler before pulling in rack. Fixes #859
481
+ * Remove NEWRELIC_DISPATCHER env variable
482
+ * Cleanup C code
483
+ * Use Timeout.timeout instead of Object.timeout
484
+ * Make phased restarts faster
485
+ * Ignore the case of certain headers, because HTTP
486
+
487
+ * 1 doc changes:
488
+
489
+ * Test against the latest Ruby 2.1, 2.2, 2.3, head and JRuby 9.0.4.0 on Travis
490
+
491
+ * 12 merged PRs
492
+ * Merge pull request #822 from kwugirl/remove_NEWRELIC_DISPATCHER
493
+ * Merge pull request #833 from joemiller/jruby-client-tls-auth
494
+ * Merge pull request #837 from YuriSolovyov/ssl-keystore-jruby
495
+ * Merge pull request #839 from mezuka/master
496
+ * Merge pull request #845 from deepj/timeout-deprecation
497
+ * Merge pull request #846 from sriedel/strip_before_fork
498
+ * Merge pull request #850 from deepj/travis
499
+ * Merge pull request #853 from Jeffrey6052/patch-1
500
+ * Merge pull request #857 from zendesk/faster_phased_restarts
501
+ * Merge pull request #858 from mlarraz/fix_some_warnings
502
+ * Merge pull request #860 from zendesk/expose_old_worker_count
503
+ * Merge pull request #861 from zendesk/allow_control_url_umask
504
+
505
+ ## 2.15.3 / 2015-11-07
506
+
507
+ * 1 bug fix:
508
+
509
+ * Fix JRuby parser
510
+
511
+ ## 2.15.2 / 2015-11-06
512
+
513
+ * 2 bug fixes:
514
+ * ext/puma_http11: handle duplicate headers as per RFC
515
+ * Only set ctx.ca iff there is a params['ca'] to set with.
516
+
517
+ * 2 PRs merged:
518
+ * Merge pull request #818 from unleashed/support-duplicate-headers
519
+ * Merge pull request #819 from VictorLowther/fix-ca-and-verify_null-exception
520
+
521
+ ## 2.15.1 / 2015-11-06
522
+
523
+ * 1 bug fix:
524
+
525
+ * Allow older openssl versions
526
+
527
+ ## 2.15.0 / 2015-11-06
528
+
529
+ * 6 minor features:
530
+ * Allow setting ca without setting a verify mode
531
+ * Make jungle for init.d support rbenv
532
+ * Use SSL_CTX_use_certificate_chain_file for full chain
533
+ * cluster: add worker_boot_timeout option
534
+ * configuration: allow empty tags to mean no tag desired
535
+ * puma/cli: support specifying STD{OUT,ERR} redirections and append mode
536
+
537
+ * 5 bug fixes:
538
+ * Disable SSL Compression
539
+ * Fix bug setting worker_directory when using a symlink directory
540
+ * Fix error message in DSL that was slightly inaccurate
541
+ * Pumactl: set correct process name. Fixes #563
542
+ * thread_pool: fix race condition when shutting down workers
543
+
544
+ * 10 doc fixes:
545
+ * Add before_fork explanation in Readme.md
546
+ * Correct spelling in DEPLOYMENT.md
547
+ * Correct spelling in docs/nginx.md
548
+ * Fix spelling errors.
549
+ * Fix typo in deployment description
550
+ * Fix typos (it's -> its) in events.rb and server.rb
551
+ * fixing for typo mentioned in #803
552
+ * Spelling correction for README
553
+ * thread_pool: fix typos in comment
554
+ * More explicit docs for worker_timeout
555
+
556
+ * 18 PRs merged:
557
+ * Merge pull request #768 from nathansamson/patch-1
558
+ * Merge pull request #773 from rossta/spelling_corrections
559
+ * Merge pull request #774 from snow/master
560
+ * Merge pull request #781 from sunsations/fix-typo
561
+ * Merge pull request #791 from unleashed/allow_empty_tags
562
+ * Merge pull request #793 from robdimarco/fix-working-directory-symlink-bug
563
+ * Merge pull request #794 from peterkeen/patch-1
564
+ * Merge pull request #795 from unleashed/redirects-from-cmdline
565
+ * Merge pull request #796 from cschneid/fix_dsl_message
566
+ * Merge pull request #799 from annafw/master
567
+ * Merge pull request #800 from liamseanbrady/fix_typo
568
+ * Merge pull request #801 from scottjg/ssl-chain-file
569
+ * Merge pull request #802 from scottjg/ssl-crimes
570
+ * Merge pull request #804 from burningTyger/patch-2
571
+ * Merge pull request #809 from unleashed/threadpool-fix-race-in-shutdown
572
+ * Merge pull request #810 from vlmonk/fix-pumactl-restart-bug
573
+ * Merge pull request #814 from schneems/schneems/worker_timeout-docs
574
+ * Merge pull request #817 from unleashed/worker-boot-timeout
575
+
576
+ ## 2.14.0 / 2015-09-18
577
+
578
+ * 1 minor feature:
579
+ * Make building with SSL support optional
580
+
581
+ * 1 bug fix:
582
+ * Use Rack::Builder if available. Fixes #735
583
+
584
+ ## 2.13.4 / 2015-08-16
585
+
586
+ * 1 bug fix:
587
+ * Use the environment possible set by the config early and from
588
+ the config file later (if set).
589
+
590
+ ## 2.13.3 / 2015-08-15
591
+
592
+ Seriously, I need to revamp config with tests.
593
+
594
+ * 1 bug fix:
595
+ * Fix preserving options before cleaning for state. Fixes #769
596
+
597
+ ## 2.13.2 / 2015-08-15
598
+
599
+ The "clearly I don't have enough tests for the config" release.
600
+
601
+ * 1 bug fix:
602
+ * Fix another place binds wasn't initialized. Fixes #767
603
+
604
+ ## 2.13.1 / 2015-08-15
605
+
606
+ * 2 bug fixes:
607
+ * Fix binds being masked in config files. Fixes #765
608
+ * Use options from the config file properly in pumactl. Fixes #764
609
+
610
+ ## 2.13.0 / 2015-08-14
611
+
612
+ * 1 minor feature:
613
+ * Add before_fork hooks option.
614
+
615
+ * 3 bug fixes:
616
+ * Check for OPENSSL_NO_ECDH before using ECDH
617
+ * Eliminate logging overhead from JRuby SSL
618
+ * Prefer cli options over config file ones. Fixes #669
619
+
620
+ * 1 deprecation:
621
+ * Add deprecation warning to capistrano.rb. Fixes #673
622
+
623
+ * 4 PRs merged:
624
+ * Merge pull request #668 from kcollignon/patch-1
625
+ * Merge pull request #754 from nathansamson/before_boot
626
+ * Merge pull request #759 from BenV/fix-centos6-build
627
+ * Merge pull request #761 from looker/no-log
628
+
629
+ ## 2.12.3 / 2015-08-03
630
+
631
+ * 8 minor bugs fixed:
632
+ * Fix Capistrano 'uninitialized constant Puma' error.
633
+ * Fix some ancient and incorrect error handling code
634
+ * Fix uninitialized constant error
635
+ * Remove toplevel rack interspection, require rack on load instead
636
+ * Skip empty parts when chunking
637
+ * Switch from inject to each in config_ru_binds iteration
638
+ * Wrap SSLv3 spec in version guard.
639
+ * ruby 1.8.7 compatibility patches
640
+
641
+ * 4 PRs merged:
642
+ * Merge pull request #742 from deivid-rodriguez/fix_missing_require
643
+ * Merge pull request #743 from matthewd/skip-empty-chunks
644
+ * Merge pull request #749 from huacnlee/fix-cap-uninitialized-puma-error
645
+ * Merge pull request #751 from costi/compat_1_8_7
646
+
647
+ * 1 test fix:
648
+ * Add 1.8.7, rbx-1 (allow failures) to Travis.
649
+
650
+ ## 2.12.2 / 2015-07-17
651
+
652
+ * 2 bug fix:
653
+ * Pull over and use Rack::URLMap. Fixes #741
654
+ * Stub out peercert on JRuby for now. Fixes #739
655
+
656
+ ## 2.12.1 / 2015-07-16
657
+
658
+ * 2 bug fixes:
659
+ * Use a constant format. Fixes #737
660
+ * Use strerror for Windows sake. Fixes #733
661
+
662
+ * 1 doc change:
663
+ * typo fix: occured -> occurred
664
+
665
+ * 1 PR merged:
666
+ * Merge pull request #736 from paulanunda/paulanunda/typo-fix
667
+
668
+ ## 2.12.0 / 2015-07-14
669
+
670
+ * 13 bug fixes:
671
+ * Add thread reaping to thread pool
672
+ * Do not automatically use chunked responses when hijacked
673
+ * Do not suppress Content-Length on partial hijack
674
+ * Don't allow any exceptions to terminate a thread
675
+ * Handle ENOTCONN client disconnects when setting REMOTE_ADDR
676
+ * Handle very early exit of cluster mode. Fixes #722
677
+ * Install rack when running tests on travis to use rack/lint
678
+ * Make puma -v and -h return success exit code
679
+ * Make pumactl load config/puma.rb by default
680
+ * Pass options from pumactl properly when pruning. Fixes #694
681
+ * Remove rack dependency. Fixes #705
682
+ * Remove the default Content-Type: text/plain
683
+ * Add Client Side Certificate Auth
684
+
685
+ * 8 doc/test changes:
686
+ * Added example sourcing of environment vars
687
+ * Added tests for bind configuration on rackup file
688
+ * Fix example config text
689
+ * Update DEPLOYMENT.md
690
+ * Update Readme with example of custom error handler
691
+ * ci: Improve Travis settings
692
+ * ci: Start running tests against JRuby 9k on Travis
693
+ * ci: Convert to container infrastructure for travisci
694
+
695
+ * 2 ops changes:
696
+ * Check for system-wide rbenv
697
+ * capistrano: Add additional env when start rails
698
+
699
+ * 16 PRs merged:
700
+ * Merge pull request #686 from jjb/patch-2
701
+ * Merge pull request #693 from rob-murray/update-example-config
702
+ * Merge pull request #697 from spk/tests-bind-on-rackup-file
703
+ * Merge pull request #699 from deees/fix/require_rack_builder
704
+ * Merge pull request #701 from deepj/master
705
+ * Merge pull request #702 from Jimdo/thread-reaping
706
+ * Merge pull request #703 from deepj/travis
707
+ * Merge pull request #704 from grega/master
708
+ * Merge pull request #709 from lian/master
709
+ * Merge pull request #711 from julik/master
710
+ * Merge pull request #712 from yakara-ltd/pumactl-default-config
711
+ * Merge pull request #715 from RobotJiang/master
712
+ * Merge pull request #725 from rwz/master
713
+ * Merge pull request #726 from strenuus/handle-client-disconnect
714
+ * Merge pull request #729 from allaire/patch-1
715
+ * Merge pull request #730 from iamjarvo/container-infrastructure
716
+
717
+ ## 2.11.3 / 2015-05-18
718
+
719
+ * 5 bug fixes:
720
+ * Be sure to unlink tempfiles after a request. Fixes #690
721
+ * Coerce the key to a string before checking. (thar be symbols). Fixes #684
722
+ * Fix hang on bad SSL handshake
723
+ * Remove `enable_SSLv3` support from JRuby
724
+
725
+ * 1 PR merged:
726
+ * Merge pull request #698 from looker/hang-handshake
727
+
728
+ ## 2.11.2 / 2015-04-11
729
+
730
+ * 2 minor features:
731
+ * Add `on_worker_fork` hook, which allows to mimic Unicorn's behavior
732
+ * Add shutdown_debug config option
733
+
734
+ * 4 bug fixes:
735
+ * Fix the Config constants not being available in the DSL. Fixes #683
736
+ * Ignore multiple port declarations
737
+ * Proper 'Connection' header handling compatible with HTTP 1.[01] protocols
738
+ * Use "Puma" instead of "puma" to reporting to New Relic
739
+
740
+ * 1 doc fixes:
741
+ * Add Gitter badge.
742
+
743
+ * 6 PRs merged:
744
+ * Merge pull request #657 from schneems/schneems/puma-once-port
745
+ * Merge pull request #658 from Tomohiro/newrelic-dispatcher-default-update
746
+ * Merge pull request #662 from basecrm/connection-compatibility
747
+ * Merge pull request #664 from fxposter/on-worker-fork
748
+ * Merge pull request #667 from JuanitoFatas/doc/gemspec
749
+ * Merge pull request #672 from chulkilee/refactor
750
+
751
+ ## 2.11.1 / 2015-02-11
752
+
753
+ * 2 bug fixes:
754
+ * Avoid crash in strange restart conditions
755
+ * Inject the GEM_HOME that bundler into puma-wild's env. Fixes #653
756
+
757
+ * 2 PRs merged:
758
+ * Merge pull request #644 from bpaquet/master
759
+ * Merge pull request #646 from mkonecny/master
760
+
761
+ ## 2.11.0 / 2015-01-20
762
+
763
+ * 9 bug fixes:
764
+ * Add mode as an additional bind option to unix sockets. Fixes #630
765
+ * Advertise HTTPS properly after a hot restart
766
+ * Don't write lowlevel_error_handler to state
767
+ * Fix phased restart with stuck requests
768
+ * Handle spaces in the path properly. Fixes #622
769
+ * Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes #583
770
+ * Skip device number checking on jruby. Fixes #586
771
+ * Update extconf.rb to compile correctly on OS X
772
+ * redirect io right after daemonizing so startup errors are shown. Fixes #359
773
+
774
+ * 6 minor features:
775
+ * Add a configuration option that prevents puma from queueing requests.
776
+ * Add reload_worker_directory
777
+ * Add the ability to pass environment variables to the init script (for Jungle).
778
+ * Add the proctitle tag to the worker. Fixes #633
779
+ * Infer a proctitle tag based on the directory
780
+ * Update lowlevel error message to be more meaningful.
781
+
782
+ * 10 PRs merged:
783
+ * Merge pull request #478 from rubencaro/master
784
+ * Merge pull request #610 from kwilczynski/master
785
+ * Merge pull request #611 from jasonl/better-lowlevel-message
786
+ * Merge pull request #616 from jc00ke/master
787
+ * Merge pull request #623 from raldred/patch-1
788
+ * Merge pull request #628 from rdpoor/master
789
+ * Merge pull request #634 from deepj/master
790
+ * Merge pull request #637 from raskhadafi/patch-1
791
+ * Merge pull request #639 from ebeigarts/fix-phased-restarts
792
+ * Merge pull request #640 from codehotter/issue-612-dependent-requests-deadlock
793
+
794
+ ## 2.10.2 / 2014-11-26
795
+
796
+ * 1 bug fix:
797
+ * Conditionalize thread local cleaning, fixes perf degradation fix
798
+ The code to clean out all Thread locals adds pretty significant
799
+ overhead to a each request, so it has to be turned on explicitly
800
+ if a user needs it.
801
+
802
+ ## 2.10.1 / 2014-11-24
803
+
804
+ * 1 bug fix:
805
+ * Load the app after daemonizing because the app might start threads.
806
+
807
+ This change means errors loading the app are now reported only in the redirected
808
+ stdout/stderr.
809
+
810
+ If you're app has problems starting up, start it without daemon mode initially
811
+ to test.
812
+
813
+ ## 2.10.0 / 2014-11-23
814
+
815
+ * 3 minor features:
816
+ * Added on_worker_shutdown hook mechanism
817
+ * Allow binding to ipv6 addresses for ssl URIs
818
+ * Warn about any threads started during app preload
819
+
820
+ * 5 bug fixes:
821
+ * Clean out a threads local data before doing work
822
+ * Disable SSLv3. Fixes #591
823
+ * First change the directory to use the correct Gemfile.
824
+ * Only use config.ru binds if specified. Fixes #606
825
+ * Strongish cipher suite with FS support for some browsers
826
+
827
+ * 2 doc changes:
828
+ * Change umask examples to more permissive values
829
+ * fix typo in README.md
830
+
831
+ * 9 Merged PRs:
832
+ * Merge pull request #560 from raskhadafi/prune_bundler-bug
833
+ * Merge pull request #566 from sheltond/master
834
+ * Merge pull request #593 from andruby/patch-1
835
+ * Merge pull request #594 from hassox/thread-cleanliness
836
+ * Merge pull request #596 from burningTyger/patch-1
837
+ * Merge pull request #601 from sorentwo/friendly-umask
838
+ * Merge pull request #602 from 1334/patch-1
839
+ * Merge pull request #608 from Gu1/master
840
+ * Merge remote-tracking branch 'origin/pr/538'
841
+
842
+ ## 2.9.2 / 2014-10-25
843
+
844
+ * 8 bug fixes:
845
+ * Fix puma-wild handling a restart properly. Fixes #550
846
+ * JRuby SSL POODLE update
847
+ * Keep deprecated features warnings
848
+ * Log the current time when Puma shuts down.
849
+ * Fix cross-platform extension library detection
850
+ * Use the correct Windows names for OpenSSL.
851
+ * Better error logging during startup
852
+ * Fixing sexist error messages
853
+
854
+ * 6 PRs merged:
855
+ * Merge pull request #549 from bsnape/log-shutdown-time
856
+ * Merge pull request #553 from lowjoel/master
857
+ * Merge pull request #568 from mariuz/patch-1
858
+ * Merge pull request #578 from danielbuechele/patch-1
859
+ * Merge pull request #581 from alexch/slightly-better-logging
860
+ * Merge pull request #590 from looker/jruby_disable_sslv3
861
+
862
+ ## 2.9.1 / 2014-09-05
863
+
864
+ * 4 bug fixes:
865
+ * Cleanup the SSL related structures properly, fixes memory leak
866
+ * Fix thread spawning edge case.
867
+ * Force a worker check after a worker boots, don't wait 5sec. Fixes #574
868
+ * Implement SIGHUP for logs reopening
869
+
870
+ * 2 PRs merged:
871
+ * Merge pull request #561 from theoldreader/sighup
872
+ * Merge pull request #570 from havenwood/spawn-thread-edge-case
873
+
874
+ ## 2.9.0 / 2014-07-12
875
+
876
+ * 1 minor feature:
877
+ * Add SSL support for JRuby
878
+
879
+ * 3 bug fixes:
880
+ * Typo BUNDLER_GEMFILE -> BUNDLE_GEMFILE
881
+ * Use fast_write because we can't trust syswrite
882
+ * pumactl - do not modify original ARGV
883
+
884
+ * 4 doc fixes:
885
+ * BSD-3-Clause over BSD to avoid confusion
886
+ * Deploy doc: clarification of the GIL
887
+ * Fix typo in DEPLOYMENT.md
888
+ * Update README.md
889
+
890
+ * 6 PRs merged:
891
+ * Merge pull request #520 from misfo/patch-2
892
+ * Merge pull request #530 from looker/jruby-ssl
893
+ * Merge pull request #537 from vlmonk/patch-1
894
+ * Merge pull request #540 from allaire/patch-1
895
+ * Merge pull request #544 from chulkilee/bsd-3-clause
896
+ * Merge pull request #551 from jcxplorer/patch-1
897
+
898
+ ## 2.8.2 / 2014-04-12
899
+
900
+ * 4 bug fixes:
901
+ * During upgrade, change directory in main process instead of workers.
902
+ * Close the client properly on error
903
+ * Capistrano: fallback from phased restart to start when not started
904
+ * Allow tag option in conf file
905
+
906
+ * 4 doc fixes:
907
+ * Fix Puma daemon service README typo
908
+ * `preload_app!` instead of `preload_app`
909
+ * add preload_app and prune_bundler to example config
910
+ * allow changing of worker_timeout in config file
911
+
912
+ * 11 PRs merged:
913
+ * Merge pull request #487 from ckuttruff/master
914
+ * Merge pull request #492 from ckuttruff/master
915
+ * Merge pull request #493 from alepore/config_tag
916
+ * Merge pull request #503 from mariuz/patch-1
917
+ * Merge pull request #505 from sammcj/patch-1
918
+ * Merge pull request #506 from FlavourSys/config_worker_timeout
919
+ * Merge pull request #510 from momer/rescue-block-handle-servers-fix
920
+ * Merge pull request #511 from macool/patch-1
921
+ * Merge pull request #514 from edogawaconan/refactor_env
922
+ * Merge pull request #517 from misfo/patch-1
923
+ * Merge pull request #518 from LongMan/master
924
+
925
+ ## 2.8.1 / 2014-03-06
926
+
927
+ * 1 bug fixes:
928
+ * Run puma-wild with proper deps for prune_bundler
929
+
930
+ * 2 doc changes:
931
+ * Described the configuration file finding behavior added in 2.8.0 and how to disable it.
932
+ * Start the deployment doc
933
+
934
+ * 6 PRs merged:
935
+ * Merge pull request #471 from arthurnn/fix_test
936
+ * Merge pull request #485 from joneslee85/patch-9
937
+ * Merge pull request #486 from joshwlewis/patch-1
938
+ * Merge pull request #490 from tobinibot/patch-1
939
+ * Merge pull request #491 from brianknight10/clarify-no-config
940
+
941
+ ## 2.8.0 / 2014-02-28
942
+
943
+ * 8 minor features:
944
+ * Add ability to autoload a config file. Fixes #438
945
+ * Add ability to detect and terminate hung workers. Fixes #333
946
+ * Add booted_workers to stats response
947
+ * Add config to customize the default error message
948
+ * Add prune_bundler option
949
+ * Add worker indexes, expose them via on_worker_boot. Fixes #440
950
+ * Add pretty process name
951
+ * Show the ruby version in use
952
+
953
+ * 7 bug fixes:
954
+ * Added 408 status on timeout.
955
+ * Be more hostile with sockets that write block. Fixes #449
956
+ * Expect at_exit to exclusively remove the pidfile. Fixes #444
957
+ * Expose latency and listen backlog via bind query. Fixes #370
958
+ * JRuby raises IOError if the socket is there. Fixes #377
959
+ * Process requests fairly. Fixes #406
960
+ * Rescue SystemCallError as well. Fixes #425
961
+
962
+ * 4 doc changes:
963
+ * Add 2.1.0 to the matrix
964
+ * Add Code Climate badge to README
965
+ * Create signals.md
966
+ * Set the license to BSD. Fixes #432
967
+
968
+ * 14 PRs merged:
969
+ * Merge pull request #428 from alexeyfrank/capistrano_default_hooks
970
+ * Merge pull request #429 from namusyaka/revert-const_defined
971
+ * Merge pull request #431 from mrb/master
972
+ * Merge pull request #433 from alepore/process-name
973
+ * Merge pull request #437 from ibrahima/master
974
+ * Merge pull request #446 from sudara/master
975
+ * Merge pull request #451 from pwiebe/status_408
976
+ * Merge pull request #453 from joevandyk/patch-1
977
+ * Merge pull request #470 from arthurnn/fix_458
978
+ * Merge pull request #472 from rubencaro/master
979
+ * Merge pull request #480 from jjb/docs-on-running-test-suite
980
+ * Merge pull request #481 from schneems/master
981
+ * Merge pull request #482 from prathamesh-sonpatki/signals-doc-cleanup
982
+ * Merge pull request #483 from YotpoLtd/master
983
+
984
+ ## 2.7.1 / 2013-12-05
985
+
986
+ * 1 bug fix:
987
+
988
+ * Keep STDOUT/STDERR the right mode. Fixes #422
989
+
990
+ ## 2.7.0 / 2013-12-03
991
+
992
+ * 1 minor feature:
993
+ * Adding TTIN and TTOU to increment/decrement workers
994
+
995
+ * N bug fixes:
996
+ * Always use our Process.daemon because it's not busted
997
+ * Add capistrano restart failback to start.
998
+ * Change position of `cd` so that rvm gemset is loaded
999
+ * Clarify some platform specifics
1000
+ * Do not close the pipe sockets when retrying
1001
+ * Fix String#byteslice for Ruby 1.9.1, 1.9.2
1002
+ * Fix compatibility with 1.8.7.
1003
+ * Handle IOError closed stream in IO.select
1004
+ * Increase the max URI path length to 2048 chars from 1024 chars
1005
+ * Upstart jungle use config/puma.rb instead
1006
+
1007
+ ## 2.6.0 / 2013-09-13
1008
+
1009
+ * 2 minor features:
1010
+ * Add support for event hooks
1011
+ ** Add a hook for state transitions
1012
+ * Add phased restart to capistrano recipe.
1013
+
1014
+ * 4 bug fixes:
1015
+ * Convince workers to stop by SIGKILL after timeout
1016
+ * Define RSTRING_NOT_MODIFIED for Rubinius performance
1017
+ * Handle BrokenPipe, StandardError and IOError in fat_wrote and break out
1018
+ * Return success status to the invoking environment
1019
+
1020
+ ## 2.5.1 / 2013-08-13
1021
+
1022
+ * 2 bug fixes:
1023
+
1024
+ * Keep jruby daemon mode from retrying on a hot restart
1025
+ * Extract version from const.rb in gemspec
1026
+
1027
+ ## 2.5.0 / 2013-08-08
1028
+
1029
+ * 2 minor features:
1030
+ * Allow configuring pumactl with config.rb
1031
+ * make `pumactl restart` start puma if not running
1032
+
1033
+ * 6 bug fixes:
1034
+ * Autodetect ruby managers and home directory in upstart script
1035
+ * Convert header values to string before sending.
1036
+ * Correctly report phased-restart availability
1037
+ * Fix pidfile creation/deletion race on jruby daemonization
1038
+ * Use integers when comparing thread counts
1039
+ * Fix typo in using lopez express (raw tcp) mode
1040
+
1041
+ * 6 misc changes:
1042
+ * Fix typo in phased-restart response
1043
+ * Uncomment setuid/setgid by default in upstart
1044
+ * Use Puma::Const::PUMA_VERSION in gemspec
1045
+ * Update upstart comments to reflect new commandline
1046
+ * Remove obsolete pumactl instructions; refer to pumactl for details
1047
+ * Make Bundler used puma.gemspec version agnostic
1048
+
1049
+ ## 2.4.1 / 2013-08-07
1050
+
1051
+ * 1 experimental feature:
1052
+ * Support raw tcp servers (aka Lopez Express mode)
1053
+
1054
+ ## 2.4.0 / 2013-07-22
1055
+
1056
+ * 5 minor features:
1057
+ * Add PUMA_JRUBY_DAEMON_OPTS to get around agent starting twice
1058
+ * Add ability to drain accept socket on shutdown
1059
+ * Add port to DSL
1060
+ * Adds support for using puma config file in capistrano deploys.
1061
+ * Make phased_restart fallback to restart if not available
1062
+
1063
+ * 10 bug fixes:
1064
+
1065
+ * Be sure to only delete the pid in the master. Fixes #334
1066
+ * Call out -C/--config flags
1067
+ * Change parser symbol names to avoid clash. Fixes #179
1068
+ * Convert thread pool sizes to integers
1069
+ * Detect when the jruby daemon child doesn't start properly
1070
+ * Fix typo in CLI help
1071
+ * Improve the logging output when hijack is used. Fixes #332
1072
+ * Remove unnecessary thread pool size conversions
1073
+ * Setup :worker_boot as an Array. Fixes #317
1074
+ * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes #309
1075
+
1076
+
1077
+ ## 2.3.2 / 2013-07-08
1078
+
1079
+ * 1 bug fix:
1080
+
1081
+ * Move starting control server to after daemonization.
1082
+
1083
+ ## 2.3.1 / 2013-07-06
1084
+
1085
+ * 2 bug fixes:
1086
+
1087
+ * Include the right files in the Manifest.
1088
+ * Disable inheriting connections on restart on windows. Fixes #166
1089
+
1090
+ * 1 doc change:
1091
+ * Better document some platform constraints
1092
+
1093
+ ## 2.3.0 / 2013-07-05
1094
+
1095
+ * 1 major bug fix:
1096
+
1097
+ * Stabilize control server, add support in cluster mode
1098
+
1099
+ * 5 minor bug fixes:
1100
+
1101
+ * Add ability to cleanup stale unix sockets
1102
+ * Check status data better. Fixes #292
1103
+ * Convert raw IO errors to ConnectionError. Fixes #274
1104
+ * Fix sending Content-Type and Content-Length for no body status. Fixes #304
1105
+ * Pass state path through to `pumactl start`. Fixes #287
1106
+
1107
+ * 2 internal changes:
1108
+
1109
+ * Refactored modes into seperate classes that CLI uses
1110
+ * Changed CLI to take an Events object instead of stdout/stderr (API change)
1111
+
1112
+ ## 2.2.2 / 2013-07-02
1113
+
1114
+ * 1 bug fix:
1115
+
1116
+ * Fix restart_command in the config
1117
+
1118
+ ## 2.2.1 / 2013-07-02
1119
+
1120
+ * 1 minor feature:
1121
+
1122
+ * Introduce preload flag
1123
+
1124
+ * 1 bug fix:
1125
+
1126
+ * Pass custom restart command in JRuby
1127
+
1128
+ ## 2.2.0 / 2013-07-01
1129
+
1130
+ * 1 major feature:
1131
+
1132
+ * Add ability to preload rack app
1133
+
1134
+ * 2 minor bugfixes:
1135
+
1136
+ * Don't leak info when not in development. Fixes #256
1137
+ * Load the app, then bind the ports
1138
+
1139
+ ## 2.1.1 / 2013-06-20
1140
+
1141
+ * 2 minor bug fixes:
1142
+
1143
+ * Fix daemonization on jruby
1144
+ * Load the application before daemonizing. Fixes #285
1145
+
1146
+ ## 2.1.0 / 2013-06-18
1147
+
1148
+ * 3 minor features:
1149
+ * Allow listening socket to be configured via Capistrano variable
1150
+ * Output results from 'stat's command when using pumactl
1151
+ * Support systemd socket activation
1152
+
1153
+ * 15 bug fixes:
1154
+ * Deal with pipes closing while stopping. Fixes #270
1155
+ * Error out early if there is no app configured
1156
+ * Handle ConnectionError rather than the lowlevel exceptions
1157
+ * tune with `-C` config file and `on_worker_boot`
1158
+ * use `-w`
1159
+ * Fixed some typos in upstart scripts
1160
+ * Make sure to use bytesize instead of size (MiniSSL write)
1161
+ * Fix an error in puma-manager.conf
1162
+ * fix: stop leaking sockets on restart (affects ruby 1.9.3 or before)
1163
+ * Ignore errors on the cross-thread pipe. Fixes #246
1164
+ * Ignore errors while uncorking the socket (it might already be closed)
1165
+ * Ignore the body on a HEAD request. Fixes #278
1166
+ * Handle all engine data when possible. Fixes #251.
1167
+ * Handle all read exceptions properly. Fixes #252
1168
+ * Handle errors from the server better
1169
+
1170
+ * 3 doc changes:
1171
+ * Add note about on_worker_boot hook
1172
+ * Add some documentation for Clustered mode
1173
+ * Added quotes to /etc/puma.conf
1174
+
1175
+ ## 2.0.1 / 2013-04-30
1176
+
1177
+ * 1 bug fix:
1178
+
1179
+ * Fix not starting on JRuby properly
1180
+
1181
+ ## 2.0.0 / 2013-04-29
1182
+
1183
+ RailsConf 2013 edition!
1184
+
1185
+ * 2 doc changes:
1186
+ * Start with rackup -s Puma, NOT rackup -s puma.
1187
+ * Minor doc fixes in the README.md, Capistrano section
1188
+
1189
+ * 2 bug fixes:
1190
+ * Fix reading RACK_ENV properly. Fixes #234
1191
+ * Make cap recipe handle tmp/sockets; fixes #228
1192
+
1193
+ * 3 minor changes:
1194
+ * Fix capistrano recipe
1195
+ * Fix stdout/stderr logs to sync outputs
1196
+ * allow binding to IPv6 addresses
1197
+
1198
+ ## 2.0.0.b7 / 2013-03-18
1199
+
1200
+ * 5 minor enhancements:
1201
+
1202
+ * Add -q option for :start
1203
+ * Add -V, --version
1204
+ * Add default Rack handler helper
1205
+ * Upstart support
1206
+ * Set worker directory from configuration file
1207
+
1208
+ * 12 bug fixes:
1209
+
1210
+ * Close the binder in the right place. Fixes #192
1211
+ * Handle early term in workers. Fixes #206
1212
+ * Make sure that the default port is 80 when the request doesn't include HTTP_X_FORWARDED_PROTO.
1213
+ * Prevent Errno::EBADF errors on restart when running ruby 2.0
1214
+ * Record the proper @master_pid
1215
+ * Respect the header HTTP_X_FORWARDED_PROTO when the host doesn't include a port number.
1216
+ * Retry EAGAIN/EWOULDBLOCK during syswrite
1217
+ * Run exec properly to restart. Fixes #154
1218
+ * Set Rack run_once to false
1219
+ * Syncronize all access to @timeouts. Fixes #208
1220
+ * Write out the state post-daemonize. Fixes #189
1221
+ * Prevent crash when all workers are gone
1222
+
1223
+ ## 2.0.0.b6 / 2013-02-06
1224
+
1225
+ * 2 minor enhancements:
1226
+
1227
+ * Add hook for running when a worker boots
1228
+ * Advertise the Configuration object for apps to use.
1229
+
1230
+ * 1 bug fix:
1231
+
1232
+ * Change directory in working during upgrade. Fixes #185
1233
+
1234
+ ## 2.0.0.b5 / 2013-02-05
1235
+
1236
+ * 2 major features:
1237
+ * Add phased worker upgrade
1238
+ * Add support for the rack hijack protocol
1239
+
1240
+ * 2 minor features:
1241
+ * Add -R to specify the restart command
1242
+ * Add config file option to specify the restart command
1243
+
1244
+ * 5 bug fixes:
1245
+ * Cleanup pipes properly. Fixes #182
1246
+ * Daemonize earlier so that we don't lose app threads. Fixes #183
1247
+ * Drain the notification pipe. Fixes #176, thanks @cryo28
1248
+ * Move write_pid to after we daemonize. Fixes #180
1249
+ * Redirect IO properly and emit message for checkpointing
1250
+
1251
+ ## 2.0.0.b4 / 2012-12-12
1252
+
1253
+ * 4 bug fixes:
1254
+ * Properly check #syswrite's value for variable sized buffers. Fixes #170
1255
+ * Shutdown status server properly
1256
+ * Handle char vs byte and mixing syswrite with write properly
1257
+ * made MiniSSL validate key/cert file existence
1258
+
1259
+ ## 2.0.0.b3 / 2012-11-22
1260
+
1261
+ * 1 bug fix:
1262
+ * Package right files in gem
1263
+
1264
+ ## 2.0.0.b2 / 2012-11-18
1265
+ * 5 minor feature:
1266
+ * Now Puma is bundled with an capistrano recipe. Just require
1267
+ 'puma/capistrano' in you deploy.rb
1268
+ * Only inject CommonLogger in development mode
1269
+ * Add -p option to pumactl
1270
+ * Add ability to use pumactl to start a server
1271
+ * Add options to daemonize puma
1272
+
1273
+ * 7 bug fixes:
1274
+ * Reset the IOBuffer properly. Fixes #148
1275
+ * Shutdown gracefully on JRuby with Ctrl-C
1276
+ * Various methods to get newrelic to start. Fixes #128
1277
+ * fixing syntax error at capistrano recipe
1278
+ * Force ECONNRESET when read returns nil
1279
+ * Be sure to empty the drain the todo before shutting down. Fixes #155
1280
+ * allow for alternate locations for status app
1281
+
1282
+ ## 2.0.0.b1 / 2012-09-11
1283
+
1284
+ * 1 major feature:
1285
+ * Optional worker process mode (-w) to allow for process scaling in
1286
+ addition to thread scaling
1287
+
1288
+ * 1 bug fix:
1289
+ * Introduce Puma::MiniSSL to be able to properly control doing
1290
+ nonblocking SSL
1291
+
1292
+ NOTE: SSL support in JRuby is not supported at present. Support will
1293
+ be added back in a future date when a java Puma::MiniSSL is added.
1294
+
1295
+ ## 1.6.3 / 2012-09-04
1296
+
1297
+ * 1 bug fix:
1298
+ * Close sockets waiting in the reactor when a hot restart is performed
1299
+ so that browsers reconnect on the next request
1300
+
1301
+ ## 1.6.2 / 2012-08-27
1302
+
1303
+ * 1 bug fix:
1304
+ * Rescue StandardError instead of IOError to handle SystemCallErrors
1305
+ as well as other application exceptions inside the reactor.
1306
+
1307
+ ## 1.6.1 / 2012-07-23
1308
+
1309
+ * 1 packaging bug fixed:
1310
+ * Include missing files
1311
+
1312
+ ## 1.6.0 / 2012-07-23
1313
+
1314
+ * 1 major bug fix:
1315
+ * Prevent slow clients from starving the server by introducing a
1316
+ dedicated IO reactor thread. Credit for reporting goes to @meh.
1317
+
1318
+ ## 1.5.0 / 2012-07-19
1319
+
1320
+ * 7 contributors to this release:
1321
+ * Christian Mayer
1322
+ * Darío Javier Cravero
1323
+ * Dirkjan Bussink
1324
+ * Gianluca Padovani
1325
+ * Santiago Pastorino
1326
+ * Thibault Jouan
1327
+ * tomykaira
1328
+
1329
+ * 6 bug fixes:
1330
+ * Define RSTRING_NOT_MODIFIED for Rubinius
1331
+ * Convert status to integer. Fixes #123
1332
+ * Delete pidfile when stopping the server
1333
+ * Allow compilation with -Werror=format-security option
1334
+ * Fix wrong HTTP version for a HTTP/1.0 request
1335
+ * Use String#bytesize instead of String#length
1336
+
1337
+ * 3 minor features:
1338
+ * Added support for setting RACK_ENV via the CLI, config file, and rack app
1339
+ * Allow Server#run to run sync. Fixes #111
1340
+ * Puma can now run on windows
1341
+
1342
+ ## 1.4.0 / 2012-06-04
1343
+
1344
+ * 1 bug fix:
1345
+ * SCRIPT_NAME should be passed from env to allow mounting apps
1346
+
1347
+ * 1 experimental feature:
1348
+ * Add puma.socket key for direct socket access
1349
+
1350
+ ## 1.3.1 / 2012-05-15
1351
+
1352
+ * 2 bug fixes:
1353
+ * use #bytesize instead of #length for Content-Length header
1354
+ * Use StringIO properly. Fixes #98
1355
+
1356
+ ## 1.3.0 / 2012-05-08
1357
+
1358
+ * 2 minor features:
1359
+ * Return valid Rack responses (passes Lint) from status server
1360
+ * Add -I option to specify $LOAD_PATH directories
1361
+
1362
+ * 4 bug fixes:
1363
+ * Don't join the server thread inside the signal handle. Fixes #94
1364
+ * Make NullIO#read mimic IO#read
1365
+ * Only stop the status server if it's started. Fixes #84
1366
+ * Set RACK_ENV early in cli also. Fixes #78
1367
+
1368
+ * 1 new contributor:
1369
+ * Jesse Cooke
1370
+
1371
+ ## 1.2.2 / 2012-04-28
1372
+
1373
+ * 4 bug fixes:
1374
+
1375
+ * Report a lowlevel error to stderr
1376
+ * Set a fallback SERVER_NAME and SERVER_PORT
1377
+ * Keep the encoding of the body correct. Fixes #79
1378
+ * show error.to_s along with backtrace for low-level error
1379
+
1380
+ ## 1.2.1 / 2012-04-11
1381
+
1382
+ 1 bug fix:
1383
+
1384
+ * Fix rack.url_scheme for SSL servers. Fixes #65
1385
+
1386
+ ## 1.2.0 / 2012-04-11
1387
+
1388
+ 1 major feature:
1389
+
1390
+ * When possible, the internal restart does a "hot restart" meaning
1391
+ the server sockets remains open, so no connections are lost.
1392
+
1393
+ 1 minor feature:
1394
+
1395
+ * More helpful fallback error message
1396
+
1397
+ 6 bug fixes:
1398
+
1399
+ * Pass the proper args to unknown_error. Fixes #54, #58
1400
+ * Stop the control server before restarting. Fixes #61
1401
+ * Fix reporting https only on a true SSL connection
1402
+ * Set the default content type to 'text/plain'. Fixes #63
1403
+ * Use REUSEADDR. Fixes #60
1404
+ * Shutdown gracefully on SIGTERM. Fixes #53
1405
+
1406
+ 2 new contributors:
1407
+
1408
+ * Seamus Abshere
1409
+ * Steve Richert
1410
+
1411
+ ## 1.1.1 / 2012-03-30
1412
+
1413
+ 1 bugfix:
1414
+
1415
+ * Include puma/compat.rb in the gem (oops!)
1416
+
1417
+ ## 1.1.0 / 2012-03-30
1418
+
1419
+ 1 bugfix:
1420
+
1421
+ * Make sure that the unix socket has the perms 0777 by default
1422
+
1423
+ 1 minor feature:
1424
+
1425
+ * Add umask param to the unix:// bind to set the umask
1426
+
1427
+ ## 1.0.0 / 2012-03-29
1428
+
1429
+ * Released!