puma 2.1.1 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +7 -0
  2. data/History.md +3273 -0
  3. data/LICENSE +23 -20
  4. data/README.md +388 -100
  5. data/bin/puma-wild +25 -0
  6. data/bin/pumactl +1 -1
  7. data/docs/architecture.md +74 -0
  8. data/docs/compile_options.md +55 -0
  9. data/docs/deployment.md +137 -0
  10. data/docs/fork_worker.md +41 -0
  11. data/docs/images/puma-connection-flow-no-reactor.png +0 -0
  12. data/docs/images/puma-connection-flow.png +0 -0
  13. data/docs/images/puma-general-arch.png +0 -0
  14. data/docs/java_options.md +54 -0
  15. data/docs/jungle/README.md +9 -0
  16. data/docs/jungle/rc.d/README.md +74 -0
  17. data/docs/jungle/rc.d/puma +61 -0
  18. data/docs/jungle/rc.d/puma.conf +10 -0
  19. data/docs/kubernetes.md +73 -0
  20. data/docs/nginx.md +5 -5
  21. data/docs/plugins.md +42 -0
  22. data/docs/rails_dev_mode.md +28 -0
  23. data/docs/restart.md +65 -0
  24. data/docs/signals.md +98 -0
  25. data/docs/stats.md +148 -0
  26. data/docs/systemd.md +253 -0
  27. data/docs/testing_benchmarks_local_files.md +150 -0
  28. data/docs/testing_test_rackup_ci_files.md +36 -0
  29. data/ext/puma_http11/PumaHttp11Service.java +2 -2
  30. data/ext/puma_http11/extconf.rb +59 -2
  31. data/ext/puma_http11/http11_parser.c +319 -487
  32. data/ext/puma_http11/http11_parser.h +15 -13
  33. data/ext/puma_http11/http11_parser.java.rl +27 -43
  34. data/ext/puma_http11/http11_parser.rl +27 -24
  35. data/ext/puma_http11/http11_parser_common.rl +8 -8
  36. data/ext/puma_http11/mini_ssl.c +696 -38
  37. data/ext/puma_http11/no_ssl/PumaHttp11Service.java +15 -0
  38. data/ext/puma_http11/org/jruby/puma/Http11.java +145 -113
  39. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +139 -172
  40. data/ext/puma_http11/org/jruby/puma/MiniSSL.java +413 -193
  41. data/ext/puma_http11/puma_http11.c +183 -175
  42. data/lib/puma/app/status.rb +77 -29
  43. data/lib/puma/binder.rb +349 -119
  44. data/lib/puma/cli.rb +164 -769
  45. data/lib/puma/client.rb +591 -132
  46. data/lib/puma/cluster/worker.rb +183 -0
  47. data/lib/puma/cluster/worker_handle.rb +127 -0
  48. data/lib/puma/cluster.rb +634 -0
  49. data/lib/puma/cluster_accept_loop_delay.rb +91 -0
  50. data/lib/puma/commonlogger.rb +115 -0
  51. data/lib/puma/configuration.rb +370 -202
  52. data/lib/puma/const.rb +266 -115
  53. data/lib/puma/control_cli.rb +219 -120
  54. data/lib/puma/detect.rb +45 -2
  55. data/lib/puma/dsl.rb +1496 -0
  56. data/lib/puma/error_logger.rb +115 -0
  57. data/lib/puma/events.rb +44 -60
  58. data/lib/puma/io_buffer.rb +48 -5
  59. data/lib/puma/jruby_restart.rb +2 -51
  60. data/lib/puma/json_serialization.rb +96 -0
  61. data/lib/puma/launcher/bundle_pruner.rb +104 -0
  62. data/lib/puma/launcher.rb +502 -0
  63. data/lib/puma/log_writer.rb +147 -0
  64. data/lib/puma/minissl/context_builder.rb +96 -0
  65. data/lib/puma/minissl.rb +355 -37
  66. data/lib/puma/null_io.rb +79 -12
  67. data/lib/puma/plugin/systemd.rb +90 -0
  68. data/lib/puma/plugin/tmp_restart.rb +36 -0
  69. data/lib/puma/plugin.rb +111 -0
  70. data/lib/puma/rack/builder.rb +297 -0
  71. data/lib/puma/rack/urlmap.rb +93 -0
  72. data/lib/puma/rack_default.rb +21 -4
  73. data/lib/puma/reactor.rb +102 -133
  74. data/lib/puma/request.rb +703 -0
  75. data/lib/puma/runner.rb +211 -0
  76. data/lib/puma/sd_notify.rb +146 -0
  77. data/lib/puma/server.rb +544 -436
  78. data/lib/puma/single.rb +72 -0
  79. data/lib/puma/state_file.rb +69 -0
  80. data/lib/puma/thread_pool.rb +282 -56
  81. data/lib/puma/util.rb +125 -0
  82. data/lib/puma.rb +80 -6
  83. data/lib/rack/handler/puma.rb +125 -47
  84. data/tools/Dockerfile +26 -0
  85. data/tools/trickletest.rb +44 -0
  86. metadata +77 -148
  87. data/COPYING +0 -55
  88. data/Gemfile +0 -10
  89. data/History.txt +0 -291
  90. data/Manifest.txt +0 -60
  91. data/Rakefile +0 -121
  92. data/TODO +0 -5
  93. data/docs/config.md +0 -0
  94. data/ext/puma_http11/ext_help.h +0 -15
  95. data/ext/puma_http11/io_buffer.c +0 -154
  96. data/lib/puma/accept_nonblock.rb +0 -23
  97. data/lib/puma/capistrano.rb +0 -34
  98. data/lib/puma/compat.rb +0 -11
  99. data/lib/puma/daemon_ext.rb +0 -20
  100. data/lib/puma/delegation.rb +0 -11
  101. data/lib/puma/java_io_buffer.rb +0 -45
  102. data/lib/puma/rack_patch.rb +0 -25
  103. data/puma.gemspec +0 -45
  104. data/test/test_app_status.rb +0 -88
  105. data/test/test_cli.rb +0 -171
  106. data/test/test_config.rb +0 -16
  107. data/test/test_http10.rb +0 -27
  108. data/test/test_http11.rb +0 -126
  109. data/test/test_integration.rb +0 -154
  110. data/test/test_iobuffer.rb +0 -38
  111. data/test/test_minissl.rb +0 -25
  112. data/test/test_null_io.rb +0 -31
  113. data/test/test_persistent.rb +0 -238
  114. data/test/test_puma_server.rb +0 -207
  115. data/test/test_rack_handler.rb +0 -10
  116. data/test/test_rack_server.rb +0 -141
  117. data/test/test_thread_pool.rb +0 -146
  118. data/test/test_unix_socket.rb +0 -39
  119. data/test/test_ws.rb +0 -89
  120. data/tools/jungle/init.d/README.md +0 -54
  121. data/tools/jungle/init.d/puma +0 -332
  122. data/tools/jungle/init.d/run-puma +0 -3
  123. data/tools/jungle/upstart/README.md +0 -61
  124. data/tools/jungle/upstart/puma-manager.conf +0 -31
  125. data/tools/jungle/upstart/puma.conf +0 -52
metadata CHANGED
@@ -1,90 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
5
- prerelease:
4
+ version: 7.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Evan Phoenix
9
- autorequire:
10
8
  bindir: bin
11
9
  cert_chain: []
12
- date: 2013-06-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
13
11
  dependencies:
14
12
  - !ruby/object:Gem::Dependency
15
- name: rack
13
+ name: nio4r
16
14
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
15
  requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '1.1'
22
- - - <
16
+ - - "~>"
23
17
  - !ruby/object:Gem::Version
24
18
  version: '2.0'
25
19
  type: :runtime
26
20
  prerelease: false
27
21
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
22
  requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '1.1'
33
- - - <
23
+ - - "~>"
34
24
  - !ruby/object:Gem::Version
35
25
  version: '2.0'
36
- - !ruby/object:Gem::Dependency
37
- name: rdoc
38
- requirement: !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- version: '4.0'
44
- type: :development
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- none: false
48
- requirements:
49
- - - ~>
50
- - !ruby/object:Gem::Version
51
- version: '4.0'
52
- - !ruby/object:Gem::Dependency
53
- name: rake-compiler
54
- requirement: !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ~>
58
- - !ruby/object:Gem::Version
59
- version: 0.8.0
60
- type: :development
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ~>
66
- - !ruby/object:Gem::Version
67
- version: 0.8.0
68
- - !ruby/object:Gem::Dependency
69
- name: hoe
70
- requirement: !ruby/object:Gem::Requirement
71
- none: false
72
- requirements:
73
- - - ~>
74
- - !ruby/object:Gem::Version
75
- version: '3.6'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- none: false
80
- requirements:
81
- - - ~>
82
- - !ruby/object:Gem::Version
83
- version: '3.6'
84
- description: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
85
- for Ruby/Rack applications. Puma is intended for use in both development and production
86
- environments. In order to get the best throughput, it is highly recommended that
87
- you use a Ruby implementation with real threads like Rubinius or JRuby.
26
+ description: |
27
+ Puma is a simple, fast, multi-threaded, and highly parallel HTTP 1.1 server
28
+ for Ruby/Rack applications. Puma is intended for use in both development and
29
+ production environments. It's great for highly parallel Ruby implementations such as
30
+ JRuby and TruffleRuby as well as as providing process worker support to support CRuby well.
88
31
  email:
89
32
  - evan@phx.io
90
33
  executables:
@@ -92,132 +35,118 @@ executables:
92
35
  - pumactl
93
36
  extensions:
94
37
  - ext/puma_http11/extconf.rb
95
- extra_rdoc_files:
96
- - History.txt
97
- - Manifest.txt
98
- - README.md
99
- - docs/config.md
100
- - docs/nginx.md
101
- - tools/jungle/init.d/README.md
102
- - tools/jungle/upstart/README.md
38
+ extra_rdoc_files: []
103
39
  files:
104
- - COPYING
105
- - Gemfile
106
- - History.txt
40
+ - History.md
107
41
  - LICENSE
108
- - Manifest.txt
109
42
  - README.md
110
- - Rakefile
111
- - TODO
112
43
  - bin/puma
44
+ - bin/puma-wild
113
45
  - bin/pumactl
114
- - docs/config.md
46
+ - docs/architecture.md
47
+ - docs/compile_options.md
48
+ - docs/deployment.md
49
+ - docs/fork_worker.md
50
+ - docs/images/puma-connection-flow-no-reactor.png
51
+ - docs/images/puma-connection-flow.png
52
+ - docs/images/puma-general-arch.png
53
+ - docs/java_options.md
54
+ - docs/jungle/README.md
55
+ - docs/jungle/rc.d/README.md
56
+ - docs/jungle/rc.d/puma
57
+ - docs/jungle/rc.d/puma.conf
58
+ - docs/kubernetes.md
115
59
  - docs/nginx.md
60
+ - docs/plugins.md
61
+ - docs/rails_dev_mode.md
62
+ - docs/restart.md
63
+ - docs/signals.md
64
+ - docs/stats.md
65
+ - docs/systemd.md
66
+ - docs/testing_benchmarks_local_files.md
67
+ - docs/testing_test_rackup_ci_files.md
116
68
  - ext/puma_http11/PumaHttp11Service.java
117
- - ext/puma_http11/ext_help.h
118
69
  - ext/puma_http11/extconf.rb
119
70
  - ext/puma_http11/http11_parser.c
120
71
  - ext/puma_http11/http11_parser.h
121
72
  - ext/puma_http11/http11_parser.java.rl
122
73
  - ext/puma_http11/http11_parser.rl
123
74
  - ext/puma_http11/http11_parser_common.rl
124
- - ext/puma_http11/io_buffer.c
125
75
  - ext/puma_http11/mini_ssl.c
76
+ - ext/puma_http11/no_ssl/PumaHttp11Service.java
126
77
  - ext/puma_http11/org/jruby/puma/Http11.java
127
78
  - ext/puma_http11/org/jruby/puma/Http11Parser.java
128
79
  - ext/puma_http11/org/jruby/puma/MiniSSL.java
129
80
  - ext/puma_http11/puma_http11.c
130
81
  - lib/puma.rb
131
- - lib/puma/accept_nonblock.rb
132
82
  - lib/puma/app/status.rb
133
83
  - lib/puma/binder.rb
134
- - lib/puma/capistrano.rb
135
84
  - lib/puma/cli.rb
136
85
  - lib/puma/client.rb
137
- - lib/puma/compat.rb
86
+ - lib/puma/cluster.rb
87
+ - lib/puma/cluster/worker.rb
88
+ - lib/puma/cluster/worker_handle.rb
89
+ - lib/puma/cluster_accept_loop_delay.rb
90
+ - lib/puma/commonlogger.rb
138
91
  - lib/puma/configuration.rb
139
92
  - lib/puma/const.rb
140
93
  - lib/puma/control_cli.rb
141
- - lib/puma/daemon_ext.rb
142
- - lib/puma/delegation.rb
143
94
  - lib/puma/detect.rb
95
+ - lib/puma/dsl.rb
96
+ - lib/puma/error_logger.rb
144
97
  - lib/puma/events.rb
145
98
  - lib/puma/io_buffer.rb
146
- - lib/puma/java_io_buffer.rb
147
99
  - lib/puma/jruby_restart.rb
100
+ - lib/puma/json_serialization.rb
101
+ - lib/puma/launcher.rb
102
+ - lib/puma/launcher/bundle_pruner.rb
103
+ - lib/puma/log_writer.rb
148
104
  - lib/puma/minissl.rb
105
+ - lib/puma/minissl/context_builder.rb
149
106
  - lib/puma/null_io.rb
107
+ - lib/puma/plugin.rb
108
+ - lib/puma/plugin/systemd.rb
109
+ - lib/puma/plugin/tmp_restart.rb
110
+ - lib/puma/rack/builder.rb
111
+ - lib/puma/rack/urlmap.rb
150
112
  - lib/puma/rack_default.rb
151
- - lib/puma/rack_patch.rb
152
113
  - lib/puma/reactor.rb
114
+ - lib/puma/request.rb
115
+ - lib/puma/runner.rb
116
+ - lib/puma/sd_notify.rb
153
117
  - lib/puma/server.rb
118
+ - lib/puma/single.rb
119
+ - lib/puma/state_file.rb
154
120
  - lib/puma/thread_pool.rb
155
121
  - lib/puma/util.rb
156
122
  - lib/rack/handler/puma.rb
157
- - puma.gemspec
158
- - tools/jungle/init.d/README.md
159
- - tools/jungle/init.d/puma
160
- - tools/jungle/init.d/run-puma
161
- - tools/jungle/upstart/README.md
162
- - tools/jungle/upstart/puma-manager.conf
163
- - tools/jungle/upstart/puma.conf
164
- - test/test_app_status.rb
165
- - test/test_cli.rb
166
- - test/test_config.rb
167
- - test/test_http10.rb
168
- - test/test_http11.rb
169
- - test/test_integration.rb
170
- - test/test_iobuffer.rb
171
- - test/test_minissl.rb
172
- - test/test_null_io.rb
173
- - test/test_persistent.rb
174
- - test/test_puma_server.rb
175
- - test/test_rack_handler.rb
176
- - test/test_rack_server.rb
177
- - test/test_thread_pool.rb
178
- - test/test_unix_socket.rb
179
- - test/test_ws.rb
180
- homepage: http://puma.io
181
- licenses: []
182
- post_install_message:
183
- rdoc_options:
184
- - --main
185
- - README.md
123
+ - tools/Dockerfile
124
+ - tools/trickletest.rb
125
+ homepage: https://puma.io
126
+ licenses:
127
+ - BSD-3-Clause
128
+ metadata:
129
+ bug_tracker_uri: https://github.com/puma/puma/issues
130
+ changelog_uri: https://github.com/puma/puma/blob/main/History.md
131
+ homepage_uri: https://puma.io
132
+ source_code_uri: https://github.com/puma/puma
133
+ rubygems_mfa_required: 'true'
134
+ msys2_mingw_dependencies: openssl
135
+ rdoc_options: []
186
136
  require_paths:
187
137
  - lib
188
138
  required_ruby_version: !ruby/object:Gem::Requirement
189
- none: false
190
139
  requirements:
191
- - - ! '>='
140
+ - - ">="
192
141
  - !ruby/object:Gem::Version
193
- version: 1.8.7
142
+ version: '3.0'
194
143
  required_rubygems_version: !ruby/object:Gem::Requirement
195
- none: false
196
144
  requirements:
197
- - - ! '>='
145
+ - - ">="
198
146
  - !ruby/object:Gem::Version
199
147
  version: '0'
200
148
  requirements: []
201
- rubyforge_project: puma
202
- rubygems_version: 1.8.25
203
- signing_key:
204
- specification_version: 3
205
- summary: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for
206
- Ruby/Rack applications
207
- test_files:
208
- - test/test_app_status.rb
209
- - test/test_cli.rb
210
- - test/test_config.rb
211
- - test/test_http10.rb
212
- - test/test_http11.rb
213
- - test/test_integration.rb
214
- - test/test_iobuffer.rb
215
- - test/test_minissl.rb
216
- - test/test_null_io.rb
217
- - test/test_persistent.rb
218
- - test/test_puma_server.rb
219
- - test/test_rack_handler.rb
220
- - test/test_rack_server.rb
221
- - test/test_thread_pool.rb
222
- - test/test_unix_socket.rb
223
- - test/test_ws.rb
149
+ rubygems_version: 4.0.6
150
+ specification_version: 4
151
+ summary: A Ruby/Rack web server built for parallelism.
152
+ test_files: []
data/COPYING DELETED
@@ -1,55 +0,0 @@
1
- Mongrel Web Server (Mongrel) is copyrighted free software by Zed A. Shaw
2
- <zedshaw at zedshaw dot com> You can redistribute it and/or modify it under
3
- either the terms of the GPL or the conditions below:
4
-
5
- 1. You may make and give away verbatim copies of the source form of the
6
- software without restriction, provided that you duplicate all of the
7
- original copyright notices and associated disclaimers.
8
-
9
- 2. You may modify your copy of the software in any way, provided that
10
- you do at least ONE of the following:
11
-
12
- a) place your modifications in the Public Domain or otherwise make them
13
- Freely Available, such as by posting said modifications to Usenet or an
14
- equivalent medium, or by allowing the author to include your
15
- modifications in the software.
16
-
17
- b) use the modified software only within your corporation or
18
- organization.
19
-
20
- c) rename any non-standard executables so the names do not conflict with
21
- standard executables, which must also be provided.
22
-
23
- d) make other distribution arrangements with the author.
24
-
25
- 3. You may distribute the software in object code or executable
26
- form, provided that you do at least ONE of the following:
27
-
28
- a) distribute the executables and library files of the software,
29
- together with instructions (in the manual page or equivalent) on where
30
- to get the original distribution.
31
-
32
- b) accompany the distribution with the machine-readable source of the
33
- software.
34
-
35
- c) give non-standard executables non-standard names, with
36
- instructions on where to get the original software distribution.
37
-
38
- d) make other distribution arrangements with the author.
39
-
40
- 4. You may modify and include the part of the software into any other
41
- software (possibly commercial). But some files in the distribution
42
- are not written by the author, so that they are not under this terms.
43
-
44
- 5. The scripts and library files supplied as input to or produced as
45
- output from the software do not automatically fall under the
46
- copyright of the software, but belong to whomever generated them,
47
- and may be sold commercially, and may be aggregated with this
48
- software.
49
-
50
- 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
51
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
52
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
53
- PURPOSE.
54
-
55
-
data/Gemfile DELETED
@@ -1,10 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- gem "hoe"
4
- gem "rdoc"
5
- gem "rake-compiler"
6
- gem "rack"
7
-
8
- gem 'minitest', '~> 4.0'
9
-
10
- gem "jruby-openssl", :platform => "jruby"
data/History.txt DELETED
@@ -1,291 +0,0 @@
1
- === 2.1.1 / 2013-06-20
2
-
3
- * 2 minor bug fixes:
4
-
5
- * Fix daemonization on jruby
6
- * Load the application before daemonizing. Fixes #285
7
-
8
- === 2.1.0 / 2013-06-18
9
-
10
- * 3 minor features:
11
- * Allow listening socket to be configured via Capistrano variable
12
- * Output results from 'stat's command when using pumactl
13
- * Support systemd socket activation
14
-
15
- * 15 bug fixes:
16
- * Deal with pipes closing while stopping. Fixes #270
17
- * Error out early if there is no app configured
18
- * Handle ConnectionError rather than the lowlevel exceptions
19
- * tune with `-C` config file and `on_worker_boot`
20
- * use `-w`
21
- * Fixed some typos in upstart scripts
22
- * Make sure to use bytesize instead of size (MiniSSL write)
23
- * Fix an error in puma-manager.conf
24
- * fix: stop leaking sockets on restart (affects ruby 1.9.3 or before)
25
- * Ignore errors on the cross-thread pipe. Fixes #246
26
- * Ignore errors while uncorking the socket (it might already be closed)
27
- * Ignore the body on a HEAD request. Fixes #278
28
- * Handle all engine data when possible. Fixes #251.
29
- * Handle all read exceptions properly. Fixes #252
30
- * Handle errors from the server better
31
-
32
- * 3 doc changes:
33
- * Add note about on_worker_boot hook
34
- * Add some documentation for Clustered mode
35
- * Added quotes to /etc/puma.conf
36
-
37
- === 2.0.1 / 2013-04-30
38
-
39
- * 1 bug fix:
40
-
41
- * Fix not starting on JRuby properly
42
-
43
- === 2.0.0 / 2013-04-29
44
-
45
- RailsConf 2013 edition!
46
-
47
- * 2 doc changes:
48
- * Start with rackup -s Puma, NOT rackup -s puma.
49
- * Minor doc fixes in the README.md, Capistrano section
50
-
51
- * 2 bug fixes:
52
- * Fix reading RACK_ENV properly. Fixes #234
53
- * Make cap recipe handle tmp/sockets; fixes #228
54
-
55
- * 3 minor changes:
56
- * Fix capistrano recipe
57
- * Fix stdout/stderr logs to sync outputs
58
- * allow binding to IPv6 addresses
59
-
60
- === 2.0.0.b7 / 2013-03-18
61
-
62
- * 5 minor enhancements:
63
-
64
- * Add -q option for :start
65
- * Add -V, --version
66
- * Add default Rack handler helper
67
- * Upstart support
68
- * Set worker directory from configuration file
69
-
70
- * 12 bug fixes:
71
-
72
- * Close the binder in the right place. Fixes #192
73
- * Handle early term in workers. Fixes #206
74
- * Make sure that the default port is 80 when the request doesn't include HTTP_X_FORWARDED_PROTO.
75
- * Prevent Errno::EBADF errors on restart when running ruby 2.0
76
- * Record the proper @master_pid
77
- * Respect the header HTTP_X_FORWARDED_PROTO when the host doesn't include a port number.
78
- * Retry EAGAIN/EWOULDBLOCK during syswrite
79
- * Run exec properly to restart. Fixes #154
80
- * Set Rack run_once to false
81
- * Syncronize all access to @timeouts. Fixes #208
82
- * Write out the state post-daemonize. Fixes #189
83
- * Prevent crash when all workers are gone
84
-
85
- === 2.0.0.b6 / 2013-02-06
86
-
87
- * 2 minor enhancements:
88
-
89
- * Add hook for running when a worker boots
90
- * Advertise the Configuration object for apps to use.
91
-
92
- * 1 bug fix:
93
-
94
- * Change directory in working during upgrade. Fixes #185
95
-
96
- === 2.0.0.b5 / 2013-02-05
97
-
98
- * 2 major features:
99
- * Add phased worker upgrade
100
- * Add support for the rack hijack protocol
101
-
102
- * 2 minor features:
103
- * Add -R to specify the restart command
104
- * Add config file option to specify the restart command
105
-
106
- * 5 bug fixes:
107
- * Cleanup pipes properly. Fixes #182
108
- * Daemonize earlier so that we don't lose app threads. Fixes #183
109
- * Drain the notification pipe. Fixes #176, thanks @cryo28
110
- * Move write_pid to after we daemonize. Fixes #180
111
- * Redirect IO properly and emit message for checkpointing
112
-
113
- === 2.0.0.b4 / 2012-12-12
114
-
115
- * 4 bug fixes:
116
- * Properly check #syswrite's value for variable sized buffers. Fixes #170
117
- * Shutdown status server properly
118
- * Handle char vs byte and mixing syswrite with write properly
119
- * made MiniSSL validate key/cert file existence
120
-
121
- === 2.0.0.b3 / 2012-11-22
122
-
123
- * 1 bug fix:
124
- * Package right files in gem
125
-
126
- === 2.0.0.b2 / 2012-11-18
127
- * 5 minor feature:
128
- * Now Puma is bundled with an capistrano recipe. Just require
129
- 'puma/capistrano' in you deploy.rb
130
- * Only inject CommonLogger in development mode
131
- * Add -p option to pumactl
132
- * Add ability to use pumactl to start a server
133
- * Add options to daemonize puma
134
-
135
- * 7 bug fixes:
136
- * Reset the IOBuffer properly. Fixes #148
137
- * Shutdown gracefully on JRuby with Ctrl-C
138
- * Various methods to get newrelic to start. Fixes #128
139
- * fixing syntax error at capistrano recipe
140
- * Force ECONNRESET when read returns nil
141
- * Be sure to empty the drain the todo before shutting down. Fixes #155
142
- * allow for alternate locations for status app
143
-
144
- === 2.0.0.b1 / 2012-09-11
145
-
146
- * 1 major feature:
147
- * Optional worker process mode (-w) to allow for process scaling in
148
- addition to thread scaling
149
-
150
- * 1 bug fix:
151
- * Introduce Puma::MiniSSL to be able to properly control doing
152
- nonblocking SSL
153
-
154
- NOTE: SSL support in JRuby is not supported at present. Support will
155
- be added back in a future date when a java Puma::MiniSSL is added.
156
-
157
- === 1.6.3 / 2012-09-04
158
-
159
- * 1 bug fix:
160
- * Close sockets waiting in the reactor when a hot restart is performed
161
- so that browsers reconnect on the next request
162
-
163
- === 1.6.2 / 2012-08-27
164
-
165
- * 1 bug fix:
166
- * Rescue StandardError instead of IOError to handle SystemCallErrors
167
- as well as other application exceptions inside the reactor.
168
-
169
- === 1.6.1 / 2012-07-23
170
-
171
- * 1 packaging bug fixed:
172
- * Include missing files
173
-
174
- === 1.6.0 / 2012-07-23
175
-
176
- * 1 major bug fix:
177
- * Prevent slow clients from starving the server by introducing a
178
- dedicated IO reactor thread. Credit for reporting goes to @meh.
179
-
180
- === 1.5.0 / 2012-07-19
181
-
182
- * 7 contributers to this release:
183
- * Christian Mayer
184
- * Darío Javier Cravero
185
- * Dirkjan Bussink
186
- * Gianluca Padovani
187
- * Santiago Pastorino
188
- * Thibault Jouan
189
- * tomykaira
190
-
191
- * 6 bug fixes:
192
- * Define RSTRING_NOT_MODIFIED for Rubinius
193
- * Convert status to integer. Fixes #123
194
- * Delete pidfile when stopping the server
195
- * Allow compilation with -Werror=format-security option
196
- * Fix wrong HTTP version for a HTTP/1.0 request
197
- * Use String#bytesize instead of String#length
198
-
199
- * 3 minor features:
200
- * Added support for setting RACK_ENV via the CLI, config file, and rack app
201
- * Allow Server#run to run sync. Fixes #111
202
- * Puma can now run on windows
203
-
204
- === 1.4.0 / 2012-06-04
205
-
206
- * 1 bug fix:
207
- * SCRIPT_NAME should be passed from env to allow mounting apps
208
-
209
- * 1 experimental feature:
210
- * Add puma.socket key for direct socket access
211
-
212
- === 1.3.1 / 2012-05-15
213
-
214
- * 2 bug fixes:
215
- * use #bytesize instead of #length for Content-Length header
216
- * Use StringIO properly. Fixes #98
217
-
218
- === 1.3.0 / 2012-05-08
219
-
220
- * 2 minor features:
221
- * Return valid Rack responses (passes Lint) from status server
222
- * Add -I option to specify $LOAD_PATH directories
223
-
224
- * 4 bug fixes:
225
- * Don't join the server thread inside the signal handle. Fixes #94
226
- * Make NullIO#read mimic IO#read
227
- * Only stop the status server if it's started. Fixes #84
228
- * Set RACK_ENV early in cli also. Fixes #78
229
-
230
- * 1 new contributer:
231
- * Jesse Cooke
232
-
233
- === 1.2.2 / 2012-04-28
234
-
235
- * 4 bug fixes:
236
-
237
- * Report a lowlevel error to stderr
238
- * Set a fallback SERVER_NAME and SERVER_PORT
239
- * Keep the encoding of the body correct. Fixes #79
240
- * show error.to_s along with backtrace for low-level error
241
-
242
- === 1.2.1 / 2012-04-11
243
-
244
- 1 bug fix:
245
-
246
- * Fix rack.url_scheme for SSL servers. Fixes #65
247
-
248
- === 1.2.0 / 2012-04-11
249
-
250
- 1 major feature:
251
-
252
- * When possible, the internal restart does a "hot restart" meaning
253
- the server sockets remains open, so no connections are lost.
254
-
255
- 1 minor feature:
256
-
257
- * More helpful fallback error message
258
-
259
- 6 bug fixes:
260
-
261
- * Pass the proper args to unknown_error. Fixes #54, #58
262
- * Stop the control server before restarting. Fixes #61
263
- * Fix reporting https only on a true SSL connection
264
- * Set the default content type to 'text/plain'. Fixes #63
265
- * Use REUSEADDR. Fixes #60
266
- * Shutdown gracefull on SIGTERM. Fixes #53
267
-
268
- 2 new contributers:
269
-
270
- * Seamus Abshere
271
- * Steve Richert
272
-
273
- === 1.1.1 / 2012-03-30
274
-
275
- 1 bugfix:
276
-
277
- * Include puma/compat.rb in the gem (oops!)
278
-
279
- === 1.1.0 / 2012-03-30
280
-
281
- 1 bugfix:
282
-
283
- * Make sure that the unix socket has the perms 0777 by default
284
-
285
- 1 minor feature:
286
-
287
- * Add umask param to the unix:// bind to set the umask
288
-
289
- === 1.0.0 / 2012-03-29
290
-
291
- * Released!