passenger 6.1.4 → 6.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +6 -1
- data/Rakefile +1 -1
- data/build/agent.rb +15 -15
- data/build/apache2.rb +18 -18
- data/build/basics.rb +1 -1
- data/build/common_library.rb +21 -20
- data/build/cxx_tests.rb +19 -19
- data/build/integration_tests.rb +3 -3
- data/build/misc.rb +10 -9
- data/build/nginx.rb +12 -12
- data/build/oxt_tests.rb +7 -7
- data/build/packaging.rb +11 -11
- data/build/ruby_extension.rb +3 -3
- data/build/ruby_tests.rb +1 -1
- data/build/schema_printer.rb +13 -13
- data/build/support/cplusplus.rb +8 -8
- data/build/support/cxx_dependency_map.rb +622 -622
- data/build/support/general.rb +0 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -4
- data/dev/colorize-logs +6 -6
- data/dev/copy_boost_headers +8 -8
- data/dev/index_cxx_dependencies.rb +6 -6
- data/dev/install_scripts_bootstrap_code.rb +4 -4
- data/dev/list_tests +2 -2
- data/dev/nginx_version_sha256 +2 -2
- data/dev/parse_file_descriptor_log +1 -1
- data/passenger.gemspec +4 -4
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
- data/src/helper-scripts/download_binaries/extconf.rb +8 -8
- data/src/helper-scripts/meteor-loader.rb +39 -39
- data/src/helper-scripts/rack-loader.rb +1 -0
- data/src/helper-scripts/rack-preloader.rb +2 -1
- data/src/ruby_native_extension/extconf.rb +27 -28
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +27 -27
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +9 -8
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +24 -24
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +526 -526
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +105 -105
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +17 -17
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +18 -18
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +10 -10
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -12
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +24 -23
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +26 -26
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +14 -13
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +34 -33
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +35 -36
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +17 -16
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +42 -42
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +548 -548
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +85 -84
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +65 -65
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -10
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -5
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +14 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +27 -26
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +16 -16
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +29 -28
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +37 -36
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -3
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +16 -15
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +5 -4
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +8 -7
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +9 -11
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +27 -26
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +6 -5
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +351 -351
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +11 -11
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -14
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +21 -23
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +12 -11
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +9 -9
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +8 -7
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -6
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +13 -12
- data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/utils.rb +17 -16
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +13 -13
- data/src/ruby_supportlib/phusion_passenger.rb +23 -22
- metadata +2 -2
data/build/support/general.rb
CHANGED
|
@@ -45,7 +45,7 @@ module CxxHintedParser
|
|
|
45
45
|
@scanner = StringScanner.new(str)
|
|
46
46
|
@structs = {}
|
|
47
47
|
@errors = []
|
|
48
|
-
@newline_positions = [0]
|
|
48
|
+
@newline_positions = [ 0 ]
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
def parse
|
|
@@ -199,7 +199,7 @@ module CxxHintedParser
|
|
|
199
199
|
name.gsub!(/\[.*?\]+$/, '')
|
|
200
200
|
end
|
|
201
201
|
|
|
202
|
-
[type, name]
|
|
202
|
+
[ type, name ]
|
|
203
203
|
end
|
|
204
204
|
|
|
205
205
|
def temporarily_set_pos(pos)
|
|
@@ -225,9 +225,9 @@ module CxxHintedParser
|
|
|
225
225
|
end
|
|
226
226
|
|
|
227
227
|
if @newline_positions[low] == pos
|
|
228
|
-
[low + 1, pos - @newline_positions[low] + 1]
|
|
228
|
+
[ low + 1, pos - @newline_positions[low] + 1 ]
|
|
229
229
|
else
|
|
230
|
-
[high + 1, pos - @newline_positions[high] + 1]
|
|
230
|
+
[ high + 1, pos - @newline_positions[high] + 1 ]
|
|
231
231
|
end
|
|
232
232
|
end
|
|
233
233
|
|
|
@@ -603,7 +603,7 @@ module CxxCodeBuilder
|
|
|
603
603
|
str = str.dup
|
|
604
604
|
str.gsub!(/\A([\s\t]*\n)+/, '')
|
|
605
605
|
str.gsub!(/[\s\t\n]+\Z/, '')
|
|
606
|
-
indent = str.split("\n").select{ |line| !line.strip.empty? }.map{ |line| line.index(/[^\s]/) }.compact.min || 0
|
|
606
|
+
indent = str.split("\n").select { |line| !line.strip.empty? }.map { |line| line.index(/[^\s]/) }.compact.min || 0
|
|
607
607
|
str.gsub!(/^[[:blank:]]{#{indent}}/, '')
|
|
608
608
|
str
|
|
609
609
|
end
|
data/build/test_basics.rb
CHANGED
|
@@ -29,7 +29,7 @@ TEST_COMMON_LIBRARY = COMMON_LIBRARY
|
|
|
29
29
|
TEST_COMMON_CFLAGS = "-DTESTING_APPLICATION_POOL"
|
|
30
30
|
|
|
31
31
|
desc "Run all unit tests and integration tests"
|
|
32
|
-
task :
|
|
32
|
+
task test: [ 'test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integration' ]
|
|
33
33
|
|
|
34
34
|
desc "Clean all compiled test files"
|
|
35
35
|
task 'test:clean' do
|
|
@@ -37,7 +37,7 @@ task 'test:clean' do
|
|
|
37
37
|
sh("rm -f test/cxx/*.#{PlatformInfo.precompiled_header_extension} test/cxx/*.gch test/cxx/*.pch")
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
task :
|
|
40
|
+
task clean: 'test:clean'
|
|
41
41
|
|
|
42
42
|
file "#{TEST_OUTPUT_DIR}allocate_memory" => 'test/support/allocate_memory.c' do
|
|
43
43
|
compile_c("#{TEST_OUTPUT_DIR}allocate_memory.o", 'test/support/allocate_memory.c')
|
|
@@ -56,7 +56,7 @@ task 'test:install_deps' do
|
|
|
56
56
|
if bundler_too_new?
|
|
57
57
|
sh "bundle config set --local path #{shesc deps_target}"
|
|
58
58
|
else
|
|
59
|
-
bundle_args.concat(["--path", shesc(deps_target)])
|
|
59
|
+
bundle_args.concat([ "--path", shesc(deps_target) ])
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
|
|
@@ -70,7 +70,7 @@ task 'test:install_deps' do
|
|
|
70
70
|
if bundler_too_new?
|
|
71
71
|
sh "bundle config set --local without 'base'"
|
|
72
72
|
else
|
|
73
|
-
bundle_args.concat(["--without", "base"])
|
|
73
|
+
bundle_args.concat([ "--without", "base" ])
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
sh "bundle install #{bundle_args.join(' ')} #{ENV['BUNDLE_ARGS']}"
|
data/dev/colorize-logs
CHANGED
|
@@ -15,7 +15,7 @@ RESET = "\e[0m"
|
|
|
15
15
|
TERMINATION_SIGNALS = [
|
|
16
16
|
Signal.list['INT'],
|
|
17
17
|
Signal.list['TERM'],
|
|
18
|
-
Signal.list['HUP']
|
|
18
|
+
Signal.list['HUP'],
|
|
19
19
|
]
|
|
20
20
|
|
|
21
21
|
def main
|
|
@@ -175,7 +175,7 @@ end
|
|
|
175
175
|
def open_input(options)
|
|
176
176
|
if options[:filename]
|
|
177
177
|
if options[:follow]
|
|
178
|
-
IO.popen(['tail', '-n', '0', '-f', options[:filename]], 'r:utf-8')
|
|
178
|
+
IO.popen([ 'tail', '-n', '0', '-f', options[:filename] ], 'r:utf-8')
|
|
179
179
|
else
|
|
180
180
|
File.open(options[:filename], 'r:utf-8')
|
|
181
181
|
end
|
|
@@ -214,7 +214,7 @@ def colorize(line, last_message_color)
|
|
|
214
214
|
elsif line =~ /^App [0-9]+ output: /
|
|
215
215
|
colorize_app_output_line(line)
|
|
216
216
|
else
|
|
217
|
-
["#{last_message_color}#{line}#{RESET}", last_message_color]
|
|
217
|
+
[ "#{last_message_color}#{line}#{RESET}", last_message_color ]
|
|
218
218
|
end
|
|
219
219
|
end
|
|
220
220
|
|
|
@@ -255,9 +255,9 @@ def colorize_loggingkit_line(line)
|
|
|
255
255
|
subprefix = message[0 .. offset.last - 1]
|
|
256
256
|
submessage = message[offset.last + 1 .. -1]
|
|
257
257
|
|
|
258
|
-
["#{prefix_color}#{prefix}#{RESET} #{UNDERLINE}#{message_color}#{subprefix}#{RESET} #{message_color}#{submessage}#{RESET}", message_color]
|
|
258
|
+
[ "#{prefix_color}#{prefix}#{RESET} #{UNDERLINE}#{message_color}#{subprefix}#{RESET} #{message_color}#{submessage}#{RESET}", message_color ]
|
|
259
259
|
else
|
|
260
|
-
["#{prefix_color}#{prefix}#{RESET} #{message_color}#{message}#{RESET}", message_color]
|
|
260
|
+
[ "#{prefix_color}#{prefix}#{RESET} #{message_color}#{message}#{RESET}", message_color ]
|
|
261
261
|
end
|
|
262
262
|
end
|
|
263
263
|
|
|
@@ -266,7 +266,7 @@ def colorize_app_output_line(line)
|
|
|
266
266
|
prefix = line[0 .. message_start_index - 1]
|
|
267
267
|
message = line[message_start_index .. -1]
|
|
268
268
|
|
|
269
|
-
["#{GREEN34}#{prefix}#{RESET}#{GREEN48}#{message}#{RESET}", WHITE]
|
|
269
|
+
[ "#{GREEN34}#{prefix}#{RESET}#{GREEN48}#{message}#{RESET}", WHITE ]
|
|
270
270
|
end
|
|
271
271
|
|
|
272
272
|
main
|
data/dev/copy_boost_headers
CHANGED
|
@@ -83,7 +83,7 @@ EXCLUDE = [
|
|
|
83
83
|
"boost/atomic/detail/windows.hpp",
|
|
84
84
|
"boost/regex/icu.hpp",
|
|
85
85
|
]
|
|
86
|
-
PROGRAM_SOURCE = %q
|
|
86
|
+
PROGRAM_SOURCE = %q(
|
|
87
87
|
#include <boost/aligned_storage.hpp>
|
|
88
88
|
#include <boost/atomic.hpp>
|
|
89
89
|
#include <boost/bind/bind.hpp>
|
|
@@ -136,7 +136,7 @@ PROGRAM_SOURCE = %q{
|
|
|
136
136
|
#include <boost/thread/thread_time.hpp>
|
|
137
137
|
#include <boost/cregex.hpp>
|
|
138
138
|
#include <boost/pointer_cast.hpp>
|
|
139
|
-
|
|
139
|
+
)
|
|
140
140
|
|
|
141
141
|
require 'fileutils'
|
|
142
142
|
BOOST_DIR = ARGV[0]
|
|
@@ -156,7 +156,7 @@ def install(source_filename, target_filename)
|
|
|
156
156
|
if !File.exist?(dir)
|
|
157
157
|
sh "mkdir", "-p", dir
|
|
158
158
|
end
|
|
159
|
-
command = ["install", "-m", "u+rw,g+r,o+r", source_filename, target_filename]
|
|
159
|
+
command = [ "install", "-m", "u+rw,g+r,o+r", source_filename, target_filename ]
|
|
160
160
|
sh(*command)
|
|
161
161
|
end
|
|
162
162
|
|
|
@@ -167,7 +167,7 @@ def copy_boost_files(patterns, exclude = nil)
|
|
|
167
167
|
files.each do |source|
|
|
168
168
|
if File.directory?(source)
|
|
169
169
|
source.slice!(0 .. BOOST_DIR.size)
|
|
170
|
-
copy_boost_files(["#{source}/*"], exclude)
|
|
170
|
+
copy_boost_files([ "#{source}/*" ], exclude)
|
|
171
171
|
else
|
|
172
172
|
target = source.slice(BOOST_DIR.size + 1 .. source.size - 1)
|
|
173
173
|
if target =~ /^libs\//
|
|
@@ -226,7 +226,7 @@ def copy_dependencies(cflags)
|
|
|
226
226
|
File.unlink('test.o') if File.exist?('test.o')
|
|
227
227
|
missing_headers = compiler_output.lines.
|
|
228
228
|
grep(/(error: .*: No such file|fatal error: '.*' file not found)/).
|
|
229
|
-
reject{|s| s =~ /\/usr\/include\// }.
|
|
229
|
+
reject { |s| s =~ /\/usr\/include\// }.
|
|
230
230
|
map do |line|
|
|
231
231
|
if line =~ /error: (.*): No such file/
|
|
232
232
|
file = $1
|
|
@@ -270,10 +270,10 @@ def start
|
|
|
270
270
|
20,
|
|
271
271
|
23,
|
|
272
272
|
26,
|
|
273
|
-
].product(['c++', 'gnu++'])
|
|
274
|
-
.map{|v,l| "-std=#{l}#{v}" }
|
|
273
|
+
].product([ 'c++', 'gnu++' ])
|
|
274
|
+
.map { |v, l| "-std=#{l}#{v}" }
|
|
275
275
|
.push("")
|
|
276
|
-
.product(["-m64",""])
|
|
276
|
+
.product([ "-m64", "" ])
|
|
277
277
|
.each do |flags|
|
|
278
278
|
copy_dependencies(flags)
|
|
279
279
|
end
|
|
@@ -7,7 +7,7 @@ SEARCH_PATHS = [
|
|
|
7
7
|
"src/cxx_supportlib",
|
|
8
8
|
"src/cxx_supportlib/vendor-copy",
|
|
9
9
|
"src/cxx_supportlib/vendor-modified",
|
|
10
|
-
"test/cxx"
|
|
10
|
+
"test/cxx",
|
|
11
11
|
]
|
|
12
12
|
SCAN_FILES = Dir[
|
|
13
13
|
"src/**/*.{c,cpp,h,hpp}",
|
|
@@ -18,8 +18,8 @@ EXCLUDE_FILES = Dir[
|
|
|
18
18
|
"src/cxx_supportlib/vendor-copy/**/*",
|
|
19
19
|
"src/cxx_supportlib/vendor-modified/**/*"
|
|
20
20
|
]
|
|
21
|
-
EXCLUDE_FILES_INDEX = Hash[EXCLUDE_FILES.map { |v| [v, true] }]
|
|
22
|
-
EXCLUDE_NAMES = %w
|
|
21
|
+
EXCLUDE_FILES_INDEX = Hash[EXCLUDE_FILES.map { |v| [ v, true ] }]
|
|
22
|
+
EXCLUDE_NAMES = %w[
|
|
23
23
|
string
|
|
24
24
|
vector
|
|
25
25
|
map
|
|
@@ -106,8 +106,8 @@ EXCLUDE_NAMES = %w{
|
|
|
106
106
|
uv.h
|
|
107
107
|
zlib.h
|
|
108
108
|
version.h
|
|
109
|
-
|
|
110
|
-
EXCLUDE_NAMES_INDEX = Hash[EXCLUDE_NAMES.map { |v| [v, true] }]
|
|
109
|
+
]
|
|
110
|
+
EXCLUDE_NAMES_INDEX = Hash[EXCLUDE_NAMES.map { |v| [ v, true ] }]
|
|
111
111
|
EXCLUDE_NAME_REGEXP = %r{
|
|
112
112
|
^(
|
|
113
113
|
sys/
|
|
@@ -165,7 +165,7 @@ end
|
|
|
165
165
|
|
|
166
166
|
def search_include_file(name, first_search_path = nil)
|
|
167
167
|
if first_search_path
|
|
168
|
-
search_paths = [first_search_path] + SEARCH_PATHS
|
|
168
|
+
search_paths = [ first_search_path ] + SEARCH_PATHS
|
|
169
169
|
else
|
|
170
170
|
search_paths = SEARCH_PATHS
|
|
171
171
|
end
|
|
@@ -15,19 +15,19 @@ type = ARGV.shift
|
|
|
15
15
|
|
|
16
16
|
if type == "--ruby"
|
|
17
17
|
ruby_libdir = ARGV.shift
|
|
18
|
-
BOOTSTRAP_CODE = %Q
|
|
18
|
+
BOOTSTRAP_CODE = %Q(
|
|
19
19
|
ENV["PASSENGER_LOCATION_CONFIGURATION_FILE"] = "#{ruby_libdir}/phusion_passenger/locations.ini"
|
|
20
20
|
begin
|
|
21
21
|
require 'rubygems'
|
|
22
22
|
rescue LoadError
|
|
23
23
|
end
|
|
24
24
|
require '#{ruby_libdir}/phusion_passenger'
|
|
25
|
-
|
|
25
|
+
)
|
|
26
26
|
elsif type == "--nginx-module-config"
|
|
27
27
|
bindir = ARGV.shift
|
|
28
|
-
BOOTSTRAP_CODE = %Q
|
|
28
|
+
BOOTSTRAP_CODE = %Q(
|
|
29
29
|
PASSENGER_CONFIG=#{bindir}/passenger-config
|
|
30
|
-
|
|
30
|
+
)
|
|
31
31
|
else
|
|
32
32
|
abort "Invalid type"
|
|
33
33
|
end
|
data/dev/list_tests
CHANGED
|
@@ -10,7 +10,7 @@ include PhusionPassenger::Utils::AnsiColors
|
|
|
10
10
|
|
|
11
11
|
def extract_category_name(occurrence)
|
|
12
12
|
occurrence =~ / (.+) /
|
|
13
|
-
|
|
13
|
+
$1
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def extract_test_name(occurrence)
|
|
@@ -18,7 +18,7 @@ def extract_test_name(occurrence)
|
|
|
18
18
|
occurrence.gsub!(/"\n[ \t]*"/m, '')
|
|
19
19
|
occurrence.sub!(/\A"/, '')
|
|
20
20
|
occurrence.sub!(/"\Z/, '')
|
|
21
|
-
|
|
21
|
+
occurrence
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def start(filename)
|
data/dev/nginx_version_sha256
CHANGED
|
@@ -48,14 +48,14 @@ KEY_URLS = [
|
|
|
48
48
|
|
|
49
49
|
puts DL_URL if debug
|
|
50
50
|
data = URI.open(DL_URL) do |f| f.read end
|
|
51
|
-
File.write("./dl.tar.gz",data) if debug
|
|
51
|
+
File.write("./dl.tar.gz", data) if debug
|
|
52
52
|
puts SIG_URL if debug
|
|
53
53
|
sig = URI.open(SIG_URL) do |f| f.read end
|
|
54
54
|
|
|
55
55
|
KEY_URLS.each do |key_url|
|
|
56
56
|
puts key_url if debug
|
|
57
57
|
key = URI.open(key_url) do |f| f.read end
|
|
58
|
-
GPGME::Key.import(key) #only needed if the key has not been imported previously
|
|
58
|
+
GPGME::Key.import(key) # only needed if the key has not been imported previously
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
crypto = GPGME::Crypto.new
|
data/passenger.gemspec
CHANGED
|
@@ -13,17 +13,17 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.version = PhusionPassenger::VERSION_STRING
|
|
14
14
|
s.author = "Phusion - http://www.phusion.nl/"
|
|
15
15
|
s.email = "software-signing@phusion.nl"
|
|
16
|
-
s.require_paths = ["src/ruby_supportlib"]
|
|
16
|
+
s.require_paths = [ "src/ruby_supportlib" ]
|
|
17
17
|
s.required_ruby_version = ">= 2.5.9"
|
|
18
18
|
s.metadata = {
|
|
19
19
|
"rubygems_mfa_required" => "true",
|
|
20
20
|
"bug_tracker_uri" => "https://github.com/phusion/passenger/issues",
|
|
21
|
-
"changelog_uri" => "https://github.com/phusion/passenger/blob/stable-#{PhusionPassenger::VERSION_STRING.split('.').slice(0,2).join('.')}/CHANGELOG",
|
|
21
|
+
"changelog_uri" => "https://github.com/phusion/passenger/blob/stable-#{PhusionPassenger::VERSION_STRING.split('.').slice(0, 2).join('.')}/CHANGELOG",
|
|
22
22
|
"documentation_uri" => "https://www.phusionpassenger.com/docs/",
|
|
23
23
|
"homepage_uri" => "https://www.phusionpassenger.com/",
|
|
24
24
|
"source_code_uri" => "https://github.com/phusion/passenger",
|
|
25
25
|
"mailing_list_uri" => "https://www.phusionpassenger.com/contact",
|
|
26
|
-
"wiki_uri" => "https://github.com/phusion/passenger/wiki"
|
|
26
|
+
"wiki_uri" => "https://github.com/phusion/passenger/wiki",
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
# Limit dependencies only to those available through OS package repositories.
|
|
@@ -41,6 +41,6 @@ Gem::Specification.new do |s|
|
|
|
41
41
|
"optimized for performance, low memory usage and ease of use."
|
|
42
42
|
|
|
43
43
|
if ENV['OFFICIAL_RELEASE']
|
|
44
|
-
s.extensions = ["src/helper-scripts/download_binaries/extconf.rb"]
|
|
44
|
+
s.extensions = [ "src/helper-scripts/download_binaries/extconf.rb" ]
|
|
45
45
|
end
|
|
46
46
|
end
|
data/src/agent/Core/Config.h
CHANGED
|
@@ -149,7 +149,7 @@ using namespace std;
|
|
|
149
149
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
150
150
|
* security_update_checker_proxy_url string - -
|
|
151
151
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
152
|
-
* server_software string - default("Phusion_Passenger/6.1.
|
|
152
|
+
* server_software string - default("Phusion_Passenger/6.1.5")
|
|
153
153
|
* show_version_in_header boolean - default(true)
|
|
154
154
|
* single_app_mode_app_root string - default,read_only
|
|
155
155
|
* single_app_mode_app_start_command string - read_only
|
|
@@ -118,7 +118,7 @@ parseControllerBenchmarkMode(const StaticString &mode) {
|
|
|
118
118
|
* old_routing boolean - default(false),read_only
|
|
119
119
|
* request_freelist_limit unsigned integer - default(1024)
|
|
120
120
|
* response_buffer_high_watermark unsigned integer - default(134217728)
|
|
121
|
-
* server_software string - default("Phusion_Passenger/6.1.
|
|
121
|
+
* server_software string - default("Phusion_Passenger/6.1.5")
|
|
122
122
|
* show_version_in_header boolean - default(true)
|
|
123
123
|
* start_reading_after_accept boolean - default(true)
|
|
124
124
|
* stat_throttle_rate unsigned integer - default(10)
|
data/src/agent/Watchdog/Config.h
CHANGED
|
@@ -139,7 +139,7 @@ using namespace std;
|
|
|
139
139
|
* security_update_checker_interval unsigned integer - default(86400)
|
|
140
140
|
* security_update_checker_proxy_url string - -
|
|
141
141
|
* security_update_checker_url string - default("https://securitycheck.phusionpassenger.com/v1/check.json")
|
|
142
|
-
* server_software string - default("Phusion_Passenger/6.1.
|
|
142
|
+
* server_software string - default("Phusion_Passenger/6.1.5")
|
|
143
143
|
* setsid boolean - default(false)
|
|
144
144
|
* show_version_in_header boolean - default(true)
|
|
145
145
|
* single_app_mode_app_root string - default,read_only
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
#define PASSENGER_API_VERSION_MAJOR 0
|
|
85
85
|
#define PASSENGER_API_VERSION_MINOR 3
|
|
86
86
|
#define PASSENGER_DEFAULT_USER "nobody"
|
|
87
|
-
#define PASSENGER_VERSION "6.1.
|
|
87
|
+
#define PASSENGER_VERSION "6.1.5"
|
|
88
88
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
|
89
89
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
|
90
90
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
|
@@ -53,7 +53,7 @@ class Addr2line
|
|
|
53
53
|
source = @stdout.readline
|
|
54
54
|
function.strip!
|
|
55
55
|
source.strip!
|
|
56
|
-
|
|
56
|
+
[ function, source ]
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def close
|
|
@@ -73,7 +73,7 @@ def passthrough(input, output)
|
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
def debug(message)
|
|
76
|
-
#puts message
|
|
76
|
+
# puts message
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
input = STDIN
|
|
@@ -63,7 +63,7 @@ ruby_compat_id = PhusionPassenger::PlatformInfo.ruby_extension_binary_compatibil
|
|
|
63
63
|
|
|
64
64
|
ABORT_ON_ERROR = ARGV[0] == "--abort-on-error"
|
|
65
65
|
if url_root = ENV['BINARIES_URL_ROOT']
|
|
66
|
-
SITES = [{ :
|
|
66
|
+
SITES = [ { url: url_root } ]
|
|
67
67
|
else
|
|
68
68
|
SITES = PhusionPassenger.binaries_sites
|
|
69
69
|
end
|
|
@@ -91,7 +91,7 @@ def download(name, options = {})
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
abort "Cannot download #{name}, aborting" if ABORT_ON_ERROR
|
|
94
|
-
|
|
94
|
+
false
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def really_download(site, name, logger, options)
|
|
@@ -104,8 +104,8 @@ def really_download(site, name, logger, options)
|
|
|
104
104
|
File.unlink("#{name}.tmp") rescue nil
|
|
105
105
|
|
|
106
106
|
options = {
|
|
107
|
-
:
|
|
108
|
-
:
|
|
107
|
+
cacert: site[:cert],
|
|
108
|
+
logger: logger,
|
|
109
109
|
}.merge(options)
|
|
110
110
|
result = PhusionPassenger::Utils::Download.download(url, "#{name}.tmp", options)
|
|
111
111
|
if result
|
|
@@ -113,9 +113,9 @@ def really_download(site, name, logger, options)
|
|
|
113
113
|
else
|
|
114
114
|
File.unlink("#{name}.tmp") rescue nil
|
|
115
115
|
end
|
|
116
|
-
|
|
116
|
+
result
|
|
117
117
|
end
|
|
118
118
|
|
|
119
|
-
download "rubyext-#{ruby_compat_id}.tar.gz", :
|
|
120
|
-
download "nginx-#{PhusionPassenger::PREFERRED_NGINX_VERSION}-#{cxx_compat_id}.tar.gz", :
|
|
121
|
-
download "agent-#{cxx_compat_id}.tar.gz", :
|
|
119
|
+
download "rubyext-#{ruby_compat_id}.tar.gz", total_timeout: 10
|
|
120
|
+
download "nginx-#{PhusionPassenger::PREFERRED_NGINX_VERSION}-#{cxx_compat_id}.tar.gz", total_timeout: 120
|
|
121
|
+
download "agent-#{cxx_compat_id}.tar.gz", total_timeout: 900
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# encoding: binary
|
|
3
|
+
|
|
3
4
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
|
4
5
|
# Copyright (c) 2010-2025 Asynchronous B.V.
|
|
5
6
|
#
|
|
@@ -32,7 +33,7 @@ module PhusionPassenger
|
|
|
32
33
|
module App
|
|
33
34
|
def self.options
|
|
34
35
|
@@options ||= {}
|
|
35
|
-
|
|
36
|
+
@@options
|
|
36
37
|
end
|
|
37
38
|
|
|
38
39
|
def self.try_write_file(path, contents)
|
|
@@ -71,7 +72,7 @@ module PhusionPassenger
|
|
|
71
72
|
end
|
|
72
73
|
|
|
73
74
|
def self.read_startup_arguments
|
|
74
|
-
|
|
75
|
+
work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
|
|
75
76
|
@@options = File.open("#{work_dir}/args.json", 'rb') do |f|
|
|
76
77
|
Utils::JSON.parse(f.read)
|
|
77
78
|
end
|
|
@@ -79,23 +80,23 @@ module PhusionPassenger
|
|
|
79
80
|
|
|
80
81
|
def self.advertise_port(port)
|
|
81
82
|
work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
path = work_dir + '/response/properties.json'
|
|
84
|
+
doc = {
|
|
85
|
+
'sockets': [ {
|
|
86
|
+
'name': 'main',
|
|
87
|
+
'address': "tcp://127.0.0.1:#{port}",
|
|
88
|
+
'protocol': 'http',
|
|
89
|
+
'concurrency': 0,
|
|
90
|
+
'accept_http_requests': true,
|
|
91
|
+
} ],
|
|
92
|
+
}
|
|
93
|
+
File.write(path, Utils::JSON.generate(doc))
|
|
93
94
|
end
|
|
94
95
|
|
|
95
96
|
def self.advertise_readiness
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
work_dir = ENV['PASSENGER_SPAWN_WORK_DIR']
|
|
98
|
+
path = work_dir + '/response/finish'
|
|
99
|
+
File.write(path, '1')
|
|
99
100
|
end
|
|
100
101
|
|
|
101
102
|
def self.init_passenger
|
|
@@ -116,7 +117,6 @@ module PhusionPassenger
|
|
|
116
117
|
PhusionPassenger.require_passenger_lib 'preloader_shared_helpers'
|
|
117
118
|
PhusionPassenger.require_passenger_lib 'utils/json'
|
|
118
119
|
require 'socket'
|
|
119
|
-
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
def self.ping_port(port)
|
|
@@ -127,7 +127,7 @@ module PhusionPassenger
|
|
|
127
127
|
begin
|
|
128
128
|
socket.connect_nonblock(sockaddr)
|
|
129
129
|
rescue Errno::ENOENT, Errno::EINPROGRESS, Errno::EAGAIN, Errno::EWOULDBLOCK
|
|
130
|
-
if select(nil, [socket], nil, 0.1)
|
|
130
|
+
if select(nil, [ socket ], nil, 0.1)
|
|
131
131
|
begin
|
|
132
132
|
socket.connect_nonblock(sockaddr)
|
|
133
133
|
rescue Errno::EISCONN
|
|
@@ -136,9 +136,9 @@ module PhusionPassenger
|
|
|
136
136
|
raise Errno::ECONNREFUSED
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
|
-
|
|
139
|
+
true
|
|
140
140
|
rescue Errno::ECONNREFUSED, Errno::ENOENT
|
|
141
|
-
|
|
141
|
+
false
|
|
142
142
|
ensure
|
|
143
143
|
socket.close if socket
|
|
144
144
|
end
|
|
@@ -190,7 +190,7 @@ module PhusionPassenger
|
|
|
190
190
|
rename_process "#{$0} (#{pid})"
|
|
191
191
|
end
|
|
192
192
|
|
|
193
|
-
|
|
193
|
+
[ pid, port ]
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
def self.wait_for_exit_message
|
|
@@ -211,40 +211,40 @@ module PhusionPassenger
|
|
|
211
211
|
|
|
212
212
|
record_journey_step_begin('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_IN_PROGRESS')
|
|
213
213
|
begin
|
|
214
|
-
|
|
214
|
+
read_startup_arguments
|
|
215
215
|
rescue Exception
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
216
|
+
record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_ERRORED')
|
|
217
|
+
raise
|
|
218
|
+
else
|
|
219
|
+
record_journey_step_end('SUBPROCESS_WRAPPER_PREPARATION', 'STEP_PERFORMED')
|
|
220
220
|
end
|
|
221
221
|
|
|
222
222
|
record_journey_step_begin('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_IN_PROGRESS')
|
|
223
223
|
begin
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
224
|
+
pid, port = load_app
|
|
225
|
+
rescue Exception
|
|
226
|
+
record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_ERRORED')
|
|
227
|
+
raise
|
|
228
|
+
else
|
|
229
|
+
record_journey_step_end('SUBPROCESS_APP_LOAD_OR_EXEC', 'STEP_PERFORMED')
|
|
230
230
|
end
|
|
231
231
|
|
|
232
232
|
record_journey_step_begin('SUBPROCESS_LISTEN', 'STEP_IN_PROGRESS')
|
|
233
|
-
|
|
233
|
+
begin
|
|
234
234
|
while !ping_port(port)
|
|
235
235
|
sleep 0.01
|
|
236
236
|
end
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
237
|
+
rescue Exception
|
|
238
|
+
record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_ERRORED')
|
|
239
|
+
raise
|
|
240
|
+
else
|
|
241
|
+
record_journey_step_end('SUBPROCESS_LISTEN', 'STEP_PERFORMED')
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
advertise_port(port)
|
|
245
245
|
advertise_readiness
|
|
246
246
|
begin
|
|
247
|
-
|
|
247
|
+
wait_for_exit_message
|
|
248
248
|
ensure
|
|
249
249
|
if pid
|
|
250
250
|
Process.kill('INT', -pid) rescue nil
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# encoding: binary
|
|
3
|
+
|
|
3
4
|
# Phusion Passenger - https://www.phusionpassenger.com/
|
|
4
5
|
# Copyright (c) 2013-2025 Asynchronous B.V.
|
|
5
6
|
#
|
|
@@ -132,7 +133,7 @@ module PhusionPassenger
|
|
|
132
133
|
server.close_on_exec!
|
|
133
134
|
File.chmod(0600, socket_filename)
|
|
134
135
|
|
|
135
|
-
[server, socket_filename]
|
|
136
|
+
[ server, socket_filename ]
|
|
136
137
|
end
|
|
137
138
|
|
|
138
139
|
def self.reinitialize_std_channels(work_dir)
|