puma 3.4.0-java → 3.5.0-java
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puma might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/DEPLOYMENT.md +1 -1
- data/History.txt +39 -0
- data/Manifest.txt +0 -1
- data/ext/puma_http11/http11_parser.c +272 -429
- data/ext/puma_http11/http11_parser_common.rl +1 -1
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +63 -78
- data/lib/puma/binder.rb +33 -13
- data/lib/puma/cluster.rb +1 -1
- data/lib/puma/configuration.rb +4 -2
- data/lib/puma/const.rb +2 -2
- data/lib/puma/dsl.rb +9 -2
- data/lib/puma/events.rb +11 -5
- data/lib/puma/puma_http11.jar +0 -0
- data/lib/puma/reactor.rb +9 -0
- data/lib/puma/server.rb +2 -2
- data/lib/puma/tcp_logger.rb +8 -1
- data/lib/puma/thread_pool.rb +4 -1
- data/tools/jungle/init.d/puma +65 -8
- data/tools/jungle/init.d/run-puma +11 -0
- data/tools/jungle/upstart/puma.conf +1 -1
- metadata +5 -7
- data/docs/config.md +0 -0
data/lib/puma/thread_pool.rb
CHANGED
@@ -68,6 +68,8 @@ module Puma
|
|
68
68
|
@spawned += 1
|
69
69
|
|
70
70
|
th = Thread.new do
|
71
|
+
# Thread name is new in Ruby 2.3
|
72
|
+
Thread.current.name = 'puma %03i' % @spawned if Thread.current.respond_to?(:name=)
|
71
73
|
todo = @todo
|
72
74
|
block = @block
|
73
75
|
mutex = @mutex
|
@@ -112,7 +114,8 @@ module Puma
|
|
112
114
|
|
113
115
|
begin
|
114
116
|
block.call(work, *extra)
|
115
|
-
rescue Exception
|
117
|
+
rescue Exception => e
|
118
|
+
STDERR.puts "Error reached top of thread-pool: #{e.message} (#{e.class})"
|
116
119
|
end
|
117
120
|
end
|
118
121
|
|
data/tools/jungle/init.d/puma
CHANGED
@@ -137,15 +137,49 @@ do_restart_one() {
|
|
137
137
|
PIDFILE=$1/tmp/puma/pid
|
138
138
|
i=`grep $1 $CONFIG`
|
139
139
|
dir=`echo $i | cut -d , -f 1`
|
140
|
-
|
140
|
+
|
141
141
|
if [ -e $PIDFILE ]; then
|
142
142
|
log_daemon_msg "--> About to restart puma $1"
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
143
|
+
kill -s USR2 `cat $PIDFILE`
|
144
|
+
# TODO Check if process exist
|
145
|
+
else
|
146
|
+
log_daemon_msg "--> Your puma was never playing... Let's get it out there first"
|
147
|
+
user=`echo $i | cut -d , -f 2`
|
148
|
+
config_file=`echo $i | cut -d , -f 3`
|
149
|
+
if [ "$config_file" = "" ]; then
|
150
|
+
config_file="$dir/config/puma.rb"
|
147
151
|
fi
|
148
|
-
|
152
|
+
log_file=`echo $i | cut -d , -f 4`
|
153
|
+
if [ "$log_file" = "" ]; then
|
154
|
+
log_file="$dir/log/puma.log"
|
155
|
+
fi
|
156
|
+
environment=`echo $i | cut -d , -f 5`
|
157
|
+
do_start_one $dir $user $config_file $log_file $environment
|
158
|
+
fi
|
159
|
+
return 0
|
160
|
+
}
|
161
|
+
|
162
|
+
#
|
163
|
+
# Function that phased restarts the jungle
|
164
|
+
#
|
165
|
+
do_phased_restart() {
|
166
|
+
for i in $JUNGLE; do
|
167
|
+
dir=`echo $i | cut -d , -f 1`
|
168
|
+
do_phased_restart_one $dir
|
169
|
+
done
|
170
|
+
}
|
171
|
+
|
172
|
+
#
|
173
|
+
# Function that sends a SIGUSR1 to the daemon/service
|
174
|
+
#
|
175
|
+
do_phased_restart_one() {
|
176
|
+
PIDFILE=$1/tmp/puma/pid
|
177
|
+
i=`grep $1 $CONFIG`
|
178
|
+
dir=`echo $i | cut -d , -f 1`
|
179
|
+
|
180
|
+
if [ -e $PIDFILE ]; then
|
181
|
+
log_daemon_msg "--> About to restart puma $1"
|
182
|
+
kill -s USR1 `cat $PIDFILE`
|
149
183
|
# TODO Check if process exist
|
150
184
|
else
|
151
185
|
log_daemon_msg "--> Your puma was never playing... Let's get it out there first"
|
@@ -256,16 +290,25 @@ do_remove() {
|
|
256
290
|
|
257
291
|
config_bundler() {
|
258
292
|
HOME="$(eval echo ~$(id -un))"
|
259
|
-
|
293
|
+
|
294
|
+
if [ -d "$1/.rbenv/bin" ]; then
|
295
|
+
PATH="$1/.rbenv/bin:$1/.rbenv/shims:$1"
|
296
|
+
eval "$(rbenv init -)"
|
297
|
+
USE_LOCAL_BUNDLE=1
|
298
|
+
return 0
|
299
|
+
|
300
|
+
elif [ -d "/usr/local/rbenv/bin" ]; then
|
260
301
|
PATH="/usr/local/rbenv/bin:/usr/local/rbenv/shims:$PATH"
|
261
302
|
eval "$(rbenv init -)"
|
262
303
|
USE_LOCAL_BUNDLE=1
|
263
304
|
return 0
|
305
|
+
|
264
306
|
elif [ -d "$HOME/.rbenv/bin" ]; then
|
265
307
|
PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
266
308
|
eval "$(rbenv init -)"
|
267
309
|
USE_LOCAL_BUNDLE=1
|
268
310
|
return 0
|
311
|
+
|
269
312
|
# TODO: test rvm
|
270
313
|
# elif [ -f /etc/profile.d/rvm.sh ]; then
|
271
314
|
# source /etc/profile.d/rvm.sh
|
@@ -355,6 +398,20 @@ case "$1" in
|
|
355
398
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
356
399
|
esac
|
357
400
|
;;
|
401
|
+
phased-restart)
|
402
|
+
log_daemon_msg "Restarting (phased) $DESC" "$NAME"
|
403
|
+
if [ "$#" -eq 1 ]; then
|
404
|
+
do_phased_restart
|
405
|
+
else
|
406
|
+
i=`grep $2 $CONFIG`
|
407
|
+
dir=`echo $i | cut -d , -f 1`
|
408
|
+
do_phased_restart_one $dir
|
409
|
+
fi
|
410
|
+
case "$?" in
|
411
|
+
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
412
|
+
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
413
|
+
esac
|
414
|
+
;;
|
358
415
|
add)
|
359
416
|
if [ "$#" -lt 3 ]; then
|
360
417
|
echo "Please, specify the app's directory and the user that will run it at least."
|
@@ -383,7 +440,7 @@ case "$1" in
|
|
383
440
|
;;
|
384
441
|
*)
|
385
442
|
echo "Usage:" >&2
|
386
|
-
echo " Run the jungle: $SCRIPTNAME {start|stop|status|restart}" >&2
|
443
|
+
echo " Run the jungle: $SCRIPTNAME {start|stop|status|restart|phased-restart}" >&2
|
387
444
|
echo " Add a Puma: $SCRIPTNAME add /path/to/app user /path/to/app/config/puma.rb /path/to/app/config/log/puma.log"
|
388
445
|
echo " config and log are optionals."
|
389
446
|
echo " Remove a Puma: $SCRIPTNAME remove /path/to/app"
|
@@ -1,3 +1,14 @@
|
|
1
1
|
#!/bin/bash
|
2
|
+
|
3
|
+
# on system boot, and root have no rbenv installed,
|
4
|
+
# after start-stop-daemon switched to current user, we have to init rbenv
|
5
|
+
if [ -d "$HOME/.rbenv/bin" ]; then
|
6
|
+
PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
7
|
+
eval "$(rbenv init -)"
|
8
|
+
elif [ -d "/usr/local/rbenv/bin" ]; then
|
9
|
+
PATH="/usr/local/rbenv/bin:/usr/local/rbenv/shims:$PATH"
|
10
|
+
eval "$(rbenv init -)"
|
11
|
+
fi
|
12
|
+
|
2
13
|
app=$1; config=$2; log=$3;
|
3
14
|
cd $app && exec bundle exec puma -C $config 2>&1 >> $log
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# allows you to manage multiple Puma instances with
|
5
5
|
# Upstart, Ubuntu's native service management tool.
|
6
6
|
#
|
7
|
-
# See
|
7
|
+
# See puma-manager.conf for how to manage all Puma instances at once.
|
8
8
|
#
|
9
9
|
# Save this config as /etc/init/puma.conf then manage puma with:
|
10
10
|
# sudo start puma app=PATH_TO_APP
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Evan Phoenix
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,7 +63,7 @@ dependencies:
|
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '3.
|
66
|
+
version: '3.15'
|
67
67
|
name: hoe
|
68
68
|
prerelease: false
|
69
69
|
type: :development
|
@@ -71,7 +71,7 @@ dependencies:
|
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '3.
|
74
|
+
version: '3.15'
|
75
75
|
description: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications. Puma is intended for use in both development and production environments. In order to get the best throughput, it is highly recommended that you use a Ruby implementation with real threads like Rubinius or JRuby.
|
76
76
|
email:
|
77
77
|
- evan@phx.io
|
@@ -84,7 +84,6 @@ extra_rdoc_files:
|
|
84
84
|
- History.txt
|
85
85
|
- Manifest.txt
|
86
86
|
- README.md
|
87
|
-
- docs/config.md
|
88
87
|
- docs/nginx.md
|
89
88
|
- docs/signals.md
|
90
89
|
- docs/systemd.md
|
@@ -102,7 +101,6 @@ files:
|
|
102
101
|
- bin/puma
|
103
102
|
- bin/puma-wild
|
104
103
|
- bin/pumactl
|
105
|
-
- docs/config.md
|
106
104
|
- docs/nginx.md
|
107
105
|
- docs/signals.md
|
108
106
|
- docs/systemd.md
|
@@ -193,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
191
|
version: '0'
|
194
192
|
requirements: []
|
195
193
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.4
|
194
|
+
rubygems_version: 2.6.4
|
197
195
|
signing_key:
|
198
196
|
specification_version: 4
|
199
197
|
summary: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications
|
data/docs/config.md
DELETED
File without changes
|