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.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +6 -1
  3. data/Rakefile +1 -1
  4. data/build/agent.rb +15 -15
  5. data/build/apache2.rb +18 -18
  6. data/build/basics.rb +1 -1
  7. data/build/common_library.rb +21 -20
  8. data/build/cxx_tests.rb +19 -19
  9. data/build/integration_tests.rb +3 -3
  10. data/build/misc.rb +10 -9
  11. data/build/nginx.rb +12 -12
  12. data/build/oxt_tests.rb +7 -7
  13. data/build/packaging.rb +11 -11
  14. data/build/ruby_extension.rb +3 -3
  15. data/build/ruby_tests.rb +1 -1
  16. data/build/schema_printer.rb +13 -13
  17. data/build/support/cplusplus.rb +8 -8
  18. data/build/support/cxx_dependency_map.rb +622 -622
  19. data/build/support/general.rb +0 -1
  20. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +4 -4
  21. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  22. data/build/test_basics.rb +4 -4
  23. data/dev/colorize-logs +6 -6
  24. data/dev/copy_boost_headers +8 -8
  25. data/dev/index_cxx_dependencies.rb +6 -6
  26. data/dev/install_scripts_bootstrap_code.rb +4 -4
  27. data/dev/list_tests +2 -2
  28. data/dev/nginx_version_sha256 +2 -2
  29. data/dev/parse_file_descriptor_log +1 -1
  30. data/passenger.gemspec +4 -4
  31. data/src/agent/Core/Config.h +1 -1
  32. data/src/agent/Core/Controller/Config.h +1 -1
  33. data/src/agent/Watchdog/Config.h +1 -1
  34. data/src/cxx_supportlib/Constants.h +1 -1
  35. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  36. data/src/helper-scripts/download_binaries/extconf.rb +8 -8
  37. data/src/helper-scripts/meteor-loader.rb +39 -39
  38. data/src/helper-scripts/rack-loader.rb +1 -0
  39. data/src/helper-scripts/rack-preloader.rb +2 -1
  40. data/src/ruby_native_extension/extconf.rb +27 -28
  41. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +27 -27
  42. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +5 -4
  43. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +9 -8
  44. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +24 -24
  45. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +5 -5
  46. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +526 -526
  47. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
  48. data/src/ruby_supportlib/phusion_passenger/common_library.rb +105 -105
  49. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +5 -5
  50. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +7 -6
  51. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  52. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  53. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  54. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +5 -5
  55. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  56. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +17 -17
  57. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +18 -18
  58. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +10 -10
  59. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -12
  60. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +24 -23
  61. data/src/ruby_supportlib/phusion_passenger/config/main.rb +26 -26
  62. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -4
  63. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
  64. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +4 -4
  65. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +14 -13
  66. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  67. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +34 -33
  68. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +3 -2
  69. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  70. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +35 -36
  71. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +17 -16
  72. data/src/ruby_supportlib/phusion_passenger/message_client.rb +5 -4
  73. data/src/ruby_supportlib/phusion_passenger/native_support.rb +42 -42
  74. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +548 -548
  75. data/src/ruby_supportlib/phusion_passenger/packaging.rb +6 -6
  76. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +85 -84
  77. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +13 -13
  78. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +5 -5
  79. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +65 -65
  80. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +6 -6
  81. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -5
  82. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -10
  83. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +6 -5
  84. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -7
  85. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +1 -1
  86. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +7 -7
  87. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +1 -1
  88. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +14 -13
  89. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +27 -26
  90. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +16 -16
  91. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
  92. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +29 -28
  93. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  94. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +37 -36
  95. data/src/ruby_supportlib/phusion_passenger/plugin.rb +3 -3
  96. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +16 -15
  97. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  98. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
  99. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +5 -4
  100. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +8 -7
  101. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +9 -11
  102. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +27 -26
  103. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +6 -5
  104. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +7 -6
  105. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +13 -13
  106. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  107. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +351 -351
  108. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +11 -11
  109. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -14
  110. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +21 -23
  111. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -4
  112. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +5 -5
  113. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +6 -6
  114. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  115. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +12 -11
  116. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +9 -9
  117. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +8 -7
  118. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -6
  119. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +4 -4
  120. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  121. data/src/ruby_supportlib/phusion_passenger/utils/shellwords.rb +1 -1
  122. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -0
  123. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +1 -0
  124. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +13 -12
  125. data/src/ruby_supportlib/phusion_passenger/utils/tmpio.rb +2 -3
  126. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +7 -7
  127. data/src/ruby_supportlib/phusion_passenger/utils.rb +17 -16
  128. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -0
  129. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +3 -2
  130. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +2 -1
  131. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +3 -2
  132. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +13 -13
  133. data/src/ruby_supportlib/phusion_passenger.rb +23 -22
  134. metadata +2 -2
@@ -25,7 +25,7 @@
25
25
  # Apple has a habit of getting their Ruby headers wrong, so if we are building using system ruby we need to patch things up, sierra & mojave both did this.
26
26
  # eg https://openradar.appspot.com/46465917
27
27
  if RUBY_PLATFORM =~ /darwin/ && !File.exist?(RbConfig::CONFIG["rubyarchhdrdir"])
28
- RbConfig::CONFIG["rubyarchhdrdir"].sub!(RUBY_PLATFORM.split('-').last, Dir.entries(File.dirname(RbConfig::CONFIG["rubyarchhdrdir"])).reject{|d|d.start_with?(".","ruby")}.first.split('-').last)
28
+ RbConfig::CONFIG["rubyarchhdrdir"].sub!(RUBY_PLATFORM.split('-').last, Dir.entries(File.dirname(RbConfig::CONFIG["rubyarchhdrdir"])).reject { |d|d.start_with?(".", "ruby") }.first.split('-').last)
29
29
  end
30
30
 
31
31
  require 'mkmf'
@@ -34,12 +34,12 @@ $LIBS << " -lpthread" if $LIBS !~ /-lpthread/
34
34
  $CFLAGS << " -g"
35
35
 
36
36
  if RUBY_PLATFORM =~ /solaris/
37
- have_library('xnet')
38
- $CFLAGS << " -D_XPG4_2"
39
- $CFLAGS << " -D__EXTENSIONS__"
40
- if RUBY_PLATFORM =~ /solaris2.9/
41
- $CFLAGS << " -D__SOLARIS9__"
42
- end
37
+ have_library('xnet')
38
+ $CFLAGS << " -D_XPG4_2"
39
+ $CFLAGS << " -D__EXTENSIONS__"
40
+ if RUBY_PLATFORM =~ /solaris2.9/
41
+ $CFLAGS << " -D__SOLARIS9__"
42
+ end
43
43
  end
44
44
 
45
45
  have_header('alloca.h')
@@ -51,25 +51,24 @@ have_func('rb_thread_io_blocking_region', 'ruby/io.h')
51
51
  have_func('rb_thread_call_without_gvl', 'ruby/thread.h')
52
52
 
53
53
  with_cflags($CFLAGS) do
54
- create_makefile('passenger_native_support')
55
- if RUBY_PLATFORM =~ /solaris/
56
- # Fix syntax error in Solaris /usr/ccs/bin/make.
57
- # https://code.google.com/p/phusion-passenger/issues/detail?id=999
58
- makefile = File.read("Makefile")
59
- makefile.sub!(/^ECHO = .*/, "ECHO = echo")
60
- File.open("Makefile", "w") do |f|
61
- f.write(makefile)
62
- end
63
- elsif RUBY_PLATFORM =~ /darwin/
64
- # The OS X Clang 503.0.38 update (circa March 15 2014) broke
65
- # /usr/bin/ruby's mkmf. mkmf inserts -multiply_definedsuppress
66
- # into the Makefile, but that flag is no longer supported by
67
- # Clang. We remove this manually.
68
- makefile = File.read("Makefile")
69
- makefile.sub!(/-multiply_definedsuppress/, "")
70
- File.open("Makefile", "w") do |f|
71
- f.write(makefile)
72
- end
73
- end
54
+ create_makefile('passenger_native_support')
55
+ if RUBY_PLATFORM =~ /solaris/
56
+ # Fix syntax error in Solaris /usr/ccs/bin/make.
57
+ # https://code.google.com/p/phusion-passenger/issues/detail?id=999
58
+ makefile = File.read("Makefile")
59
+ makefile.sub!(/^ECHO = .*/, "ECHO = echo")
60
+ File.open("Makefile", "w") do |f|
61
+ f.write(makefile)
62
+ end
63
+ elsif RUBY_PLATFORM =~ /darwin/
64
+ # The OS X Clang 503.0.38 update (circa March 15 2014) broke
65
+ # /usr/bin/ruby's mkmf. mkmf inserts -multiply_definedsuppress
66
+ # into the Makefile, but that flag is no longer supported by
67
+ # Clang. We remove this manually.
68
+ makefile = File.read("Makefile")
69
+ makefile.sub!(/-multiply_definedsuppress/, "")
70
+ File.open("Makefile", "w") do |f|
71
+ f.write(makefile)
72
+ end
73
+ end
74
74
  end
75
-
@@ -72,10 +72,10 @@ module PhusionPassenger
72
72
  def run
73
73
  before_install
74
74
  run_steps
75
- return true
75
+ true
76
76
  rescue Abort
77
77
  puts
78
- return false
78
+ false
79
79
  rescue SignalException, SystemExit
80
80
  raise
81
81
  rescue PlatformInfo::RuntimeError => e
@@ -100,11 +100,11 @@ module PhusionPassenger
100
100
 
101
101
 
102
102
  def interactive?
103
- return !@auto
103
+ !@auto
104
104
  end
105
105
 
106
106
  def non_interactive?
107
- return !interactive?
107
+ !interactive?
108
108
  end
109
109
 
110
110
 
@@ -130,7 +130,7 @@ module PhusionPassenger
130
130
  end
131
131
 
132
132
  def dependencies
133
- return [[], []]
133
+ [ [], [] ]
134
134
  end
135
135
 
136
136
  def check_dependencies(show_new_screen = true)
@@ -150,7 +150,7 @@ module PhusionPassenger
150
150
  end
151
151
 
152
152
  if runner.check_all
153
- return true
153
+ true
154
154
  else
155
155
  puts
156
156
  puts "<red>Some required software is not installed.</red>"
@@ -176,7 +176,7 @@ module PhusionPassenger
176
176
  puts
177
177
  puts " <yellow>#{install_doc_url}</yellow>"
178
178
  puts " <yellow>#{troubleshooting_doc_url}</yellow>"
179
- return false
179
+ false
180
180
  end
181
181
  end
182
182
 
@@ -198,9 +198,9 @@ module PhusionPassenger
198
198
  File.stat(PhusionPassenger.build_system_dir).uid == 0
199
199
  new_screen
200
200
  render_template 'installer_common/gem_install_permission_problems'
201
- return false
201
+ false
202
202
  else
203
- return true
203
+ true
204
204
  end
205
205
  end
206
206
 
@@ -215,7 +215,7 @@ module PhusionPassenger
215
215
  if !inaccessible_directories.empty?
216
216
  new_screen
217
217
  render_template 'installer_common/world_inaccessible_directories',
218
- :directories => inaccessible_directories
218
+ directories: inaccessible_directories
219
219
  wait
220
220
  end
221
221
  end
@@ -239,11 +239,11 @@ module PhusionPassenger
239
239
  if ram_mb && swap_mb && ram_mb + swap_mb < required
240
240
  new_screen
241
241
  render_template 'installer_common/low_amount_of_memory_warning',
242
- :required => required,
243
- :current => ram_mb + swap_mb,
244
- :ram => ram_mb,
245
- :swap => swap_mb,
246
- :install_doc_url => install_doc_url
242
+ required: required,
243
+ current: ram_mb + swap_mb,
244
+ ram: ram_mb,
245
+ swap: swap_mb,
246
+ install_doc_url: install_doc_url
247
247
  wait
248
248
  end
249
249
  end
@@ -301,8 +301,8 @@ module PhusionPassenger
301
301
  end
302
302
 
303
303
  def render_template(name, options = {})
304
- options.merge!(:colors => @colors)
305
- puts ConsoleTextTemplate.new({ :file => name }, options).result
304
+ options.merge!(colors: @colors)
305
+ puts ConsoleTextTemplate.new({ file: name }, options).result
306
306
  end
307
307
 
308
308
  def new_screen
@@ -342,7 +342,7 @@ module PhusionPassenger
342
342
  done = !block_given? || yield(result)
343
343
  end
344
344
  end
345
- return result
345
+ result
346
346
  rescue Interrupt
347
347
  raise Abort
348
348
  end
@@ -356,7 +356,7 @@ module PhusionPassenger
356
356
  false
357
357
  end
358
358
  end
359
- return result.downcase == 'y'
359
+ result.downcase == 'y'
360
360
  rescue Interrupt
361
361
  raise Abort
362
362
  end
@@ -378,9 +378,9 @@ module PhusionPassenger
378
378
  end
379
379
  end
380
380
  if result.empty?
381
- return default
381
+ default
382
382
  else
383
- return result.downcase == 'y'
383
+ result.downcase == 'y'
384
384
  end
385
385
  rescue Interrupt
386
386
  raise Abort
@@ -406,7 +406,7 @@ module PhusionPassenger
406
406
  end
407
407
 
408
408
  def home_dir
409
- return PhusionPassenger.home_dir
409
+ PhusionPassenger.home_dir
410
410
  end
411
411
 
412
412
 
@@ -414,11 +414,11 @@ module PhusionPassenger
414
414
  puts "# #{args.join(' ')}"
415
415
  result = system(*args)
416
416
  if result
417
- return true
417
+ true
418
418
  elsif $?.signaled? && $?.termsig == Signal.list["INT"]
419
419
  raise Interrupt
420
420
  else
421
- return false
421
+ false
422
422
  end
423
423
  end
424
424
 
@@ -454,7 +454,7 @@ module PhusionPassenger
454
454
  logger.formatter = proc { |severity, datetime, progname, msg| "*** #{msg}\n" }
455
455
  logger
456
456
  end
457
- return PhusionPassenger::Utils::Download.download(url, output, options)
457
+ PhusionPassenger::Utils::Download.download(url, output, options)
458
458
  end
459
459
 
460
460
  def list_parent_directories(dir)
@@ -464,7 +464,7 @@ module PhusionPassenger
464
464
  components.size.times do |i|
465
465
  dirs << File::SEPARATOR + components[0 .. i].join(File::SEPARATOR)
466
466
  end
467
- return dirs.reverse
467
+ dirs.reverse
468
468
  end
469
469
 
470
470
  def world_executable?(dir)
@@ -473,7 +473,7 @@ module PhusionPassenger
473
473
  rescue Errno::EACCESS
474
474
  return false
475
475
  end
476
- return stat.mode & 0000001 != 0
476
+ stat.mode & 0000001 != 0
477
477
  end
478
478
  end
479
479
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2014-2025 Asynchronous B.V.
4
5
  #
@@ -108,7 +109,7 @@ module PhusionPassenger
108
109
  sock.close
109
110
  end
110
111
 
111
- return response
112
+ response
112
113
  end
113
114
 
114
115
  def watchdog_pid
@@ -229,11 +230,11 @@ module PhusionPassenger
229
230
  def process_is_alive?(pid)
230
231
  begin
231
232
  Process.kill(0, pid)
232
- return true
233
+ true
233
234
  rescue Errno::ESRCH
234
- return false
235
+ false
235
236
  rescue SystemCallError => e
236
- return true
237
+ true
237
238
  end
238
239
  end
239
240
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2014-2025 Asynchronous B.V.
4
5
  #
@@ -31,12 +32,12 @@ module PhusionPassenger
31
32
 
32
33
  class InstanceRegistry
33
34
  def initialize(paths = nil)
34
- @paths = [paths || default_paths].flatten.uniq
35
+ @paths = [ paths || default_paths ].flatten.uniq
35
36
  end
36
37
 
37
38
  def list(options = {})
38
39
  options = {
39
- :clean_stale_or_corrupted => true
40
+ clean_stale_or_corrupted: true,
40
41
  }.merge(options)
41
42
 
42
43
  instances = []
@@ -69,16 +70,16 @@ module PhusionPassenger
69
70
  end
70
71
 
71
72
  def find_by_name(name, options = {})
72
- return list(options).find { |instance| instance.name == name }
73
+ list(options).find { |instance| instance.name == name }
73
74
  end
74
75
 
75
76
  def find_by_name_prefix(name, options = {})
76
77
  prefix = /^#{Regexp.escape name}/
77
78
  results = list(options).find_all { |instance| instance.name =~ prefix }
78
79
  if results.size <= 1
79
- return results.first
80
+ results.first
80
81
  else
81
- return :ambiguous
82
+ :ambiguous
82
83
  end
83
84
  end
84
85
 
@@ -87,13 +88,13 @@ module PhusionPassenger
87
88
  # return: the matching instance, if found; nil otherwise.
88
89
  #
89
90
  def find_by_watchdog_pid(pid, options = {})
90
- return list(options).detect { |instance| instance.watchdog_pid == pid }
91
+ list(options).detect { |instance| instance.watchdog_pid == pid }
91
92
  end
92
93
 
93
94
  private
94
95
  def default_paths
95
96
  if result = string_env("PASSENGER_INSTANCE_REGISTRY_DIR")
96
- return [result]
97
+ return [ result ]
97
98
  end
98
99
 
99
100
  # On OSX, TMPDIR is set to a different value per-user. But Apache
@@ -106,7 +107,7 @@ module PhusionPassenger
106
107
  # systemd's PrivateTmp feature works like an inverted OSX, apache gets its own
107
108
  # TMPDIR and users use /tmp, however the path is often too long because socket paths can
108
109
  # only be up to 108 characters long.
109
- [string_env("TMPDIR"), "/tmp", "/var/run/passenger-instreg",*Dir['/tmp/systemd-private-*-{httpd,nginx,apache2}.service-*/tmp']].compact
110
+ [ string_env("TMPDIR"), "/tmp", "/var/run/passenger-instreg", *Dir['/tmp/systemd-private-*-{httpd,nginx,apache2}.service-*/tmp'] ].compact
110
111
  end
111
112
 
112
113
  def string_env(name)
@@ -1,4 +1,5 @@
1
1
  # encoding: binary
2
+
2
3
  # Phusion Passenger - https://www.phusionpassenger.com/
3
4
  # Copyright (c) 2010-2025 Asynchronous B.V.
4
5
  #
@@ -42,23 +43,23 @@ module PhusionPassenger
42
43
  attr_accessor :private_dirty_rss # in KB
43
44
 
44
45
  def vm_size_in_mb
45
- return sprintf("%.1f MB", vm_size / 1024.0)
46
+ sprintf("%.1f MB", vm_size / 1024.0)
46
47
  end
47
48
 
48
49
  def rss_in_mb
49
- return sprintf("%.1f MB", rss / 1024.0)
50
+ sprintf("%.1f MB", rss / 1024.0)
50
51
  end
51
52
 
52
53
  def private_dirty_rss_in_mb
53
54
  if private_dirty_rss.is_a?(Numeric)
54
- return sprintf("%.1f MB", private_dirty_rss / 1024.0)
55
+ sprintf("%.1f MB", private_dirty_rss / 1024.0)
55
56
  else
56
- return "?"
57
+ "?"
57
58
  end
58
59
  end
59
60
 
60
61
  def to_a
61
- return [pid, ppid, vm_size_in_mb, private_dirty_rss_in_mb, rss_in_mb, name]
62
+ [ pid, ppid, vm_size_in_mb, private_dirty_rss_in_mb, rss_in_mb, name ]
62
63
  end
63
64
  end
64
65
 
@@ -67,11 +68,11 @@ module PhusionPassenger
67
68
  def apache_processes
68
69
  @apache_processes ||= begin
69
70
  if PlatformInfo.httpd
70
- processes = list_processes(:exe => PlatformInfo.httpd)
71
+ processes = list_processes(exe: PlatformInfo.httpd)
71
72
  if processes.empty?
72
73
  # On some Linux distros, the Apache worker processes
73
74
  # are called "httpd.worker"
74
- processes = list_processes(:exe => "#{PlatformInfo.httpd}.worker")
75
+ processes = list_processes(exe: "#{PlatformInfo.httpd}.worker")
75
76
  end
76
77
  processes
77
78
  else
@@ -83,14 +84,13 @@ module PhusionPassenger
83
84
  # Returns a list of Nginx processes, which may be the empty list if
84
85
  # Nginx is not running.
85
86
  def nginx_processes
86
- @nginx_processes ||= list_processes(:exe => "nginx")
87
+ @nginx_processes ||= list_processes(exe: "nginx")
87
88
  end
88
89
 
89
90
  # Returns a list of Phusion Passenger processes, which may be the empty list if
90
91
  # Phusion Passenger is not running.
91
92
  def passenger_processes
92
- @passenger_processes ||= list_processes(:match =>
93
- /((^| )Passenger|(^| )Rails:|(^| )Rack:|wsgi-loader.py|(.*)PassengerAgent|rack-loader.rb)/)
93
+ @passenger_processes ||= list_processes(match: /((^| )Passenger|(^| )Rails:|(^| )Rack:|wsgi-loader.py|(.*)PassengerAgent|rack-loader.rb)/)
94
94
  end
95
95
 
96
96
  # Returns the sum of the memory usages of all given processes.
@@ -108,28 +108,28 @@ module PhusionPassenger
108
108
  accurate = true
109
109
  end
110
110
  end
111
- return [total, accurate]
111
+ [ total, accurate ]
112
112
  else
113
113
  processes.each do |p|
114
114
  total += p.rss
115
115
  end
116
- return [total, true]
116
+ [ total, true ]
117
117
  end
118
118
  end
119
119
 
120
120
  def platform_provides_private_dirty_rss_information?
121
- return os_name_simple == "linux"
121
+ os_name_simple == "linux"
122
122
  end
123
123
 
124
124
  # Returns whether root privileges are required in order to measure private dirty RSS.
125
125
  # Only meaningful if #platform_provides_private_dirty_rss_information? returns true.
126
126
  def root_privileges_required_for_private_dirty_rss?
127
127
  all_processes = (apache_processes || []) + nginx_processes + passenger_processes
128
- return all_processes.any?{ |p| p.private_dirty_rss.nil? }
128
+ all_processes.any? { |p| p.private_dirty_rss.nil? }
129
129
  end
130
130
 
131
131
  def should_show_private_dirty_rss?
132
- return platform_provides_private_dirty_rss_information? &&
132
+ platform_provides_private_dirty_rss_information? &&
133
133
  (::Process.euid == 0 || root_privileges_required_for_private_dirty_rss?)
134
134
  end
135
135
 
@@ -150,7 +150,7 @@ module PhusionPassenger
150
150
  line = $1.strip
151
151
  used = line.split(/ +/).first.to_i
152
152
 
153
- [total, used]
153
+ [ total, used ]
154
154
  when "macosx"
155
155
  vm_stat = `vm_stat`
156
156
  vm_stat =~ /page size of (\d+) bytes/
@@ -172,7 +172,7 @@ module PhusionPassenger
172
172
  wired = wired.to_i * page_size / 1024
173
173
 
174
174
  used = active + wired
175
- [free + inactive + used, used]
175
+ [ free + inactive + used, used ]
176
176
  else
177
177
  nil
178
178
  end
@@ -193,7 +193,7 @@ module PhusionPassenger
193
193
  free = to_kb.call($7, $8)
194
194
 
195
195
  used = active + wired
196
- [free + inactive + used, used]
196
+ [ free + inactive + used, used ]
197
197
  else
198
198
  nil
199
199
  end
@@ -203,7 +203,7 @@ module PhusionPassenger
203
203
 
204
204
  private
205
205
  def os_name_simple
206
- return PlatformInfo.os_name_simple
206
+ PlatformInfo.os_name_simple
207
207
  end
208
208
 
209
209
  # Returns a list of Process objects that match the given search criteria.
@@ -266,7 +266,7 @@ module PhusionPassenger
266
266
  p.name.sub!(/ \(ruby\)\Z/, '')
267
267
  if p.name !~ /^ps/ && (!options[:match] || p.name.match(options[:match]))
268
268
  # Convert some values to integer.
269
- [:pid, :ppid, :vm_size, :rss].each do |attr|
269
+ [ :pid, :ppid, :vm_size, :rss ].each do |attr|
270
270
  p.send("#{attr}=", p.send(attr).to_i)
271
271
  end
272
272
  p.threads = p.threads.to_i if threads_known
@@ -277,7 +277,7 @@ module PhusionPassenger
277
277
  processes << p
278
278
  end
279
279
  end
280
- return processes
280
+ processes
281
281
  end
282
282
 
283
283
  # Returns the private dirty RSS for the given process, in KB.
@@ -290,12 +290,12 @@ module PhusionPassenger
290
290
  end
291
291
  end
292
292
  if total == 0
293
- return nil
293
+ nil
294
294
  else
295
- return total
295
+ total
296
296
  end
297
297
  rescue Errno::EACCES, Errno::ENOENT, Errno::ESRCH
298
- return nil
298
+ nil
299
299
  end
300
300
 
301
301
  if ''.respond_to?(:force_encoding)
@@ -26,22 +26,22 @@ module PhusionPassenger
26
26
 
27
27
  module AdminTools
28
28
  def self.tmpdir
29
- ["PASSENGER_INSTANCE_REGISTRY_DIR", "TMPDIR"].each do |name|
29
+ [ "PASSENGER_INSTANCE_REGISTRY_DIR", "TMPDIR" ].each do |name|
30
30
  if ENV.has_key?(name) && !ENV[name].empty?
31
31
  return ENV[name]
32
32
  end
33
33
  end
34
- return Dir['/tmp/systemd-private-*-{httpd,nginx}.service-*/tmp'].first || "/tmp"
34
+ Dir['/tmp/systemd-private-*-{httpd,nginx}.service-*/tmp'].first || "/tmp"
35
35
  end
36
36
 
37
37
  def self.process_is_alive?(pid)
38
38
  begin
39
39
  Process.kill(0, pid)
40
- return true
40
+ true
41
41
  rescue Errno::ESRCH
42
- return false
42
+ false
43
43
  rescue SystemCallError => e
44
- return true
44
+ true
45
45
  end
46
46
  end
47
47
  end # module AdminTools