passenger 5.0.0.beta3 → 5.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +11 -5
  5. data/CHANGELOG +38 -0
  6. data/CONTRIBUTING.md +1 -4
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +0 -2
  9. data/Rakefile +33 -33
  10. data/bin/passenger +1 -1
  11. data/bin/passenger-config +1 -1
  12. data/bin/passenger-install-apache2-module +800 -800
  13. data/bin/passenger-install-nginx-module +592 -592
  14. data/bin/passenger-memory-stats +127 -127
  15. data/bin/passenger-status +216 -216
  16. data/build/agents.rb +127 -127
  17. data/build/apache2.rb +87 -87
  18. data/build/basics.rb +60 -60
  19. data/build/common_library.rb +165 -165
  20. data/build/cplusplus_support.rb +51 -51
  21. data/build/cxx_tests.rb +268 -268
  22. data/build/debian.rb +143 -143
  23. data/build/documentation.rb +58 -58
  24. data/build/integration_tests.rb +81 -81
  25. data/build/misc.rb +132 -132
  26. data/build/nginx.rb +20 -20
  27. data/build/node_tests.rb +7 -7
  28. data/build/oxt_tests.rb +14 -14
  29. data/build/packaging.rb +570 -570
  30. data/build/preprocessor.rb +260 -260
  31. data/build/rake_extensions.rb +71 -71
  32. data/build/ruby_extension.rb +29 -29
  33. data/build/ruby_tests.rb +6 -6
  34. data/build/test_basics.rb +37 -37
  35. data/debian.template/control.template +3 -5
  36. data/dev/copy_boost_headers +134 -134
  37. data/dev/install_scripts_bootstrap_code.rb +25 -25
  38. data/dev/list_tests +20 -20
  39. data/dev/ruby_server.rb +223 -223
  40. data/dev/runner +18 -18
  41. data/doc/ServerOptimizationGuide.txt.md +55 -2
  42. data/doc/Users guide Nginx.txt +0 -26
  43. data/doc/Users guide Standalone.txt +5 -1
  44. data/doc/users_guide_snippets/tips.txt +9 -0
  45. data/ext/common/ApplicationPool2/Group.h +23 -11
  46. data/ext/common/ApplicationPool2/Implementation.cpp +32 -7
  47. data/ext/common/ApplicationPool2/Pool.h +22 -17
  48. data/ext/common/ApplicationPool2/SmartSpawner.h +4 -1
  49. data/ext/common/ApplicationPool2/Spawner.h +1 -1
  50. data/ext/common/Constants.h +1 -1
  51. data/ext/common/agents/Base.cpp +35 -20
  52. data/ext/common/agents/HelperAgent/Main.cpp +8 -1
  53. data/ext/common/agents/HelperAgent/OptionParser.h +18 -4
  54. data/ext/common/agents/HelperAgent/RequestHandler.h +2 -83
  55. data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +54 -1
  56. data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +7 -4
  57. data/ext/common/agents/Main.cpp +1 -1
  58. data/ext/common/agents/Watchdog/Main.cpp +54 -19
  59. data/ext/nginx/Configuration.c +7 -0
  60. data/ext/nginx/ContentHandler.c +9 -1
  61. data/helper-scripts/backtrace-sanitizer.rb +106 -87
  62. data/helper-scripts/crash-watch.rb +32 -0
  63. data/helper-scripts/download_binaries/extconf.rb +38 -38
  64. data/helper-scripts/meteor-loader.rb +107 -107
  65. data/helper-scripts/prespawn +101 -101
  66. data/helper-scripts/rack-loader.rb +96 -96
  67. data/helper-scripts/rack-preloader.rb +137 -137
  68. data/lib/phusion_passenger.rb +292 -292
  69. data/lib/phusion_passenger/abstract_installer.rb +438 -438
  70. data/lib/phusion_passenger/active_support3_extensions/init.rb +168 -170
  71. data/lib/phusion_passenger/admin_tools.rb +20 -20
  72. data/lib/phusion_passenger/admin_tools/instance.rb +178 -178
  73. data/lib/phusion_passenger/admin_tools/instance_registry.rb +61 -61
  74. data/lib/phusion_passenger/admin_tools/memory_stats.rb +267 -267
  75. data/lib/phusion_passenger/apache2/config_options.rb +182 -182
  76. data/lib/phusion_passenger/common_library.rb +479 -485
  77. data/lib/phusion_passenger/config/about_command.rb +161 -161
  78. data/lib/phusion_passenger/config/admin_command_command.rb +129 -129
  79. data/lib/phusion_passenger/config/agent_compiler.rb +121 -121
  80. data/lib/phusion_passenger/config/build_native_support_command.rb +43 -43
  81. data/lib/phusion_passenger/config/command.rb +25 -25
  82. data/lib/phusion_passenger/config/compile_agent_command.rb +62 -62
  83. data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +88 -73
  84. data/lib/phusion_passenger/config/detach_process_command.rb +72 -72
  85. data/lib/phusion_passenger/config/download_agent_command.rb +246 -227
  86. data/lib/phusion_passenger/config/download_nginx_engine_command.rb +245 -224
  87. data/lib/phusion_passenger/config/install_agent_command.rb +144 -132
  88. data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +205 -185
  89. data/lib/phusion_passenger/config/installation_utils.rb +204 -204
  90. data/lib/phusion_passenger/config/list_instances_command.rb +64 -64
  91. data/lib/phusion_passenger/config/main.rb +152 -152
  92. data/lib/phusion_passenger/config/nginx_engine_compiler.rb +319 -300
  93. data/lib/phusion_passenger/config/reopen_logs_command.rb +67 -67
  94. data/lib/phusion_passenger/config/restart_app_command.rb +155 -155
  95. data/lib/phusion_passenger/config/system_metrics_command.rb +13 -13
  96. data/lib/phusion_passenger/config/utils.rb +95 -95
  97. data/lib/phusion_passenger/config/validate_install_command.rb +198 -198
  98. data/lib/phusion_passenger/console_text_template.rb +25 -25
  99. data/lib/phusion_passenger/constants.rb +90 -90
  100. data/lib/phusion_passenger/debug_logging.rb +106 -106
  101. data/lib/phusion_passenger/loader_shared_helpers.rb +447 -432
  102. data/lib/phusion_passenger/message_channel.rb +312 -312
  103. data/lib/phusion_passenger/message_client.rb +176 -176
  104. data/lib/phusion_passenger/native_support.rb +369 -369
  105. data/lib/phusion_passenger/nginx/config_options.rb +297 -297
  106. data/lib/phusion_passenger/packaging.rb +131 -131
  107. data/lib/phusion_passenger/platform_info.rb +360 -360
  108. data/lib/phusion_passenger/platform_info/apache.rb +767 -767
  109. data/lib/phusion_passenger/platform_info/apache_detector.rb +199 -199
  110. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +107 -107
  111. data/lib/phusion_passenger/platform_info/compiler.rb +570 -570
  112. data/lib/phusion_passenger/platform_info/curl.rb +32 -32
  113. data/lib/phusion_passenger/platform_info/cxx_portability.rb +188 -188
  114. data/lib/phusion_passenger/platform_info/depcheck.rb +372 -372
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +109 -109
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -34
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +101 -101
  119. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -5
  120. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +13 -13
  121. data/lib/phusion_passenger/platform_info/linux.rb +55 -55
  122. data/lib/phusion_passenger/platform_info/operating_system.rb +149 -149
  123. data/lib/phusion_passenger/platform_info/ruby.rb +468 -448
  124. data/lib/phusion_passenger/platform_info/zlib.rb +9 -9
  125. data/lib/phusion_passenger/plugin.rb +66 -66
  126. data/lib/phusion_passenger/preloader_shared_helpers.rb +126 -126
  127. data/lib/phusion_passenger/public_api.rb +191 -191
  128. data/lib/phusion_passenger/rack/out_of_band_gc.rb +93 -94
  129. data/lib/phusion_passenger/rack/thread_handler_extension.rb +231 -227
  130. data/lib/phusion_passenger/request_handler.rb +567 -577
  131. data/lib/phusion_passenger/request_handler/thread_handler.rb +379 -381
  132. data/lib/phusion_passenger/ruby_core_enhancements.rb +86 -86
  133. data/lib/phusion_passenger/ruby_core_io_enhancements.rb +74 -74
  134. data/lib/phusion_passenger/simple_benchmarking.rb +25 -25
  135. data/lib/phusion_passenger/standalone/app_finder.rb +153 -150
  136. data/lib/phusion_passenger/standalone/command.rb +44 -40
  137. data/lib/phusion_passenger/standalone/config_utils.rb +53 -53
  138. data/lib/phusion_passenger/standalone/control_utils.rb +38 -59
  139. data/lib/phusion_passenger/standalone/main.rb +73 -73
  140. data/lib/phusion_passenger/standalone/start_command.rb +697 -685
  141. data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +193 -155
  142. data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +162 -133
  143. data/lib/phusion_passenger/standalone/status_command.rb +64 -64
  144. data/lib/phusion_passenger/standalone/stop_command.rb +72 -72
  145. data/lib/phusion_passenger/standalone/version_command.rb +9 -9
  146. data/lib/phusion_passenger/union_station/connection.rb +32 -32
  147. data/lib/phusion_passenger/union_station/core.rb +251 -251
  148. data/lib/phusion_passenger/union_station/transaction.rb +126 -126
  149. data/lib/phusion_passenger/utils.rb +199 -167
  150. data/lib/phusion_passenger/utils/ansi_colors.rb +128 -128
  151. data/lib/phusion_passenger/utils/download.rb +196 -196
  152. data/lib/phusion_passenger/utils/file_system_watcher.rb +158 -158
  153. data/lib/phusion_passenger/utils/hosts_file_parser.rb +101 -101
  154. data/lib/phusion_passenger/utils/lock.rb +31 -31
  155. data/lib/phusion_passenger/utils/native_support_utils.rb +31 -31
  156. data/lib/phusion_passenger/utils/progress_bar.rb +26 -26
  157. data/lib/phusion_passenger/utils/shellwords.rb +20 -20
  158. data/lib/phusion_passenger/utils/terminal_choice_menu.rb +206 -206
  159. data/lib/phusion_passenger/utils/unseekable_socket.rb +272 -272
  160. data/lib/phusion_passenger/vendor/crash_watch/app.rb +129 -0
  161. data/lib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +341 -0
  162. data/lib/phusion_passenger/vendor/crash_watch/version.rb +24 -0
  163. data/lib/phusion_passenger/vendor/daemon_controller.rb +877 -0
  164. data/lib/phusion_passenger/vendor/daemon_controller/lock_file.rb +127 -0
  165. data/lib/phusion_passenger/vendor/daemon_controller/spawn.rb +26 -0
  166. data/lib/phusion_passenger/vendor/daemon_controller/version.rb +29 -0
  167. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -1
  168. data/passenger.gemspec +0 -1
  169. data/resources/templates/config/nginx_engine_compiler/possible_solutions_for_download_and_extraction_problems.txt.erb +27 -0
  170. data/resources/templates/standalone/config.erb +19 -15
  171. data/test/integration_tests/apache2_tests.rb +566 -566
  172. data/test/integration_tests/downloaded_binaries_tests.rb +126 -125
  173. data/test/integration_tests/native_packaging_spec.rb +296 -296
  174. data/test/integration_tests/nginx_tests.rb +393 -393
  175. data/test/integration_tests/shared/example_webapp_tests.rb +282 -280
  176. data/test/integration_tests/source_packaging_test.rb +138 -138
  177. data/test/integration_tests/spec_helper.rb +5 -5
  178. data/test/integration_tests/standalone_tests.rb +367 -367
  179. data/test/ruby/debug_logging_spec.rb +133 -133
  180. data/test/ruby/message_channel_spec.rb +186 -186
  181. data/test/ruby/rack/loader_spec.rb +28 -28
  182. data/test/ruby/rack/preloader_spec.rb +34 -34
  183. data/test/ruby/rails3.0/loader_spec.rb +12 -12
  184. data/test/ruby/rails3.0/preloader_spec.rb +18 -18
  185. data/test/ruby/rails3.1/loader_spec.rb +12 -12
  186. data/test/ruby/rails3.1/preloader_spec.rb +18 -18
  187. data/test/ruby/rails3.2/loader_spec.rb +12 -12
  188. data/test/ruby/rails3.2/preloader_spec.rb +18 -18
  189. data/test/ruby/rails4.0/loader_spec.rb +12 -12
  190. data/test/ruby/rails4.0/preloader_spec.rb +18 -18
  191. data/test/ruby/rails4.1/loader_spec.rb +12 -12
  192. data/test/ruby/rails4.1/preloader_spec.rb +18 -18
  193. data/test/ruby/request_handler_spec.rb +730 -730
  194. data/test/ruby/shared/loader_sharedspec.rb +224 -224
  195. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +327 -327
  196. data/test/ruby/shared/ruby_loader_sharedspec.rb +47 -47
  197. data/test/ruby/spec_helper.rb +65 -65
  198. data/test/ruby/standalone/runtime_installer_spec.rb +384 -384
  199. data/test/ruby/union_station_spec.rb +276 -276
  200. data/test/ruby/utils/file_system_watcher_spec.rb +220 -220
  201. data/test/ruby/utils/hosts_file_parser.rb +248 -248
  202. data/test/ruby/utils/tee_input_spec.rb +215 -215
  203. data/test/ruby/utils/unseekable_socket_spec.rb +57 -57
  204. data/test/ruby/utils_spec.rb +21 -21
  205. data/test/stub/rack/config.ru +87 -87
  206. data/test/stub/rack/library.rb +8 -8
  207. data/test/stub/rack/start.rb +30 -30
  208. data/test/support/apache2_controller.rb +191 -191
  209. data/test/support/nginx_controller.rb +90 -99
  210. data/test/support/placebo-preloader.rb +57 -57
  211. data/test/support/test_helper.rb +435 -435
  212. metadata +11 -21
  213. metadata.gz.asc +7 -7
  214. data/lib/phusion_passenger/standalone/command2.rb +0 -292
  215. data/lib/phusion_passenger/standalone/start2_command.rb +0 -799
  216. data/resources/templates/standalone/download_tool_missing.txt.erb +0 -18
  217. data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -17
  218. data/resources/templates/standalone/run_installer_as_root.txt.erb +0 -8
@@ -27,32 +27,32 @@ PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
27
27
 
28
28
  module PhusionPassenger
29
29
 
30
- class ConsoleTextTemplate
31
- def initialize(input, options = {})
32
- @buffer = ''
33
- if input[:file]
34
- filename = "#{PhusionPassenger.resources_dir}/templates/#{input[:file]}.txt.erb"
35
- data = File.read(filename)
36
- else
37
- data = input[:text]
38
- end
39
- @colors = options[:colors] || AnsiColors.new
40
- @template = ERB.new(@colors.ansi_colorize(data),
41
- nil, '-', '@buffer')
42
- @template.filename = filename if filename
43
- options.each_pair do |name, value|
44
- self[name] = value
45
- end
46
- end
30
+ class ConsoleTextTemplate
31
+ def initialize(input, options = {})
32
+ @buffer = ''
33
+ if input[:file]
34
+ filename = "#{PhusionPassenger.resources_dir}/templates/#{input[:file]}.txt.erb"
35
+ data = File.read(filename)
36
+ else
37
+ data = input[:text]
38
+ end
39
+ @colors = options[:colors] || AnsiColors.new
40
+ @template = ERB.new(@colors.ansi_colorize(data),
41
+ nil, '-', '@buffer')
42
+ @template.filename = filename if filename
43
+ options.each_pair do |name, value|
44
+ self[name] = value
45
+ end
46
+ end
47
47
 
48
- def []=(name, value)
49
- instance_variable_set("@#{name}".to_sym, value)
50
- return self
51
- end
48
+ def []=(name, value)
49
+ instance_variable_set("@#{name}".to_sym, value)
50
+ return self
51
+ end
52
52
 
53
- def result
54
- return @template.result(binding)
55
- end
56
- end
53
+ def result
54
+ return @template.result(binding)
55
+ end
56
+ end
57
57
 
58
58
  end # module PhusionPassenger
@@ -22,101 +22,101 @@
22
22
  # THE SOFTWARE.
23
23
 
24
24
  module PhusionPassenger
25
- UNION_STATION_CORE = "UNION_STATION_CORE".freeze
26
- UNION_STATION_REQUEST_TRANSACTION = "UNION_STATION_REQUEST_TRANSACTION".freeze
27
- PASSENGER_TXN_ID = "PASSENGER_TXN_ID".freeze
28
- PASSENGER_APP_GROUP_NAME = "PASSENGER_APP_GROUP_NAME".freeze
29
- PASSENGER_UNION_STATION_KEY = "UNION_STATION_KEY".freeze
30
- RACK_HIJACK_IO = "rack.hijack_io".freeze
25
+ UNION_STATION_CORE = "UNION_STATION_CORE".freeze
26
+ UNION_STATION_REQUEST_TRANSACTION = "UNION_STATION_REQUEST_TRANSACTION".freeze
27
+ PASSENGER_TXN_ID = "PASSENGER_TXN_ID".freeze
28
+ PASSENGER_APP_GROUP_NAME = "PASSENGER_APP_GROUP_NAME".freeze
29
+ PASSENGER_UNION_STATION_KEY = "UNION_STATION_KEY".freeze
30
+ RACK_HIJACK_IO = "rack.hijack_io".freeze
31
31
 
32
- LVL_CRIT = 0
33
- LVL_ERROR = 1
34
- LVL_WARN = 2
35
- LVL_NOTICE = 3
36
- LVL_INFO = 4
37
- LVL_DEBUG = 5
38
- LVL_DEBUG2 = 6
39
- LVL_DEBUG3 = 7
32
+ LVL_CRIT = 0
33
+ LVL_ERROR = 1
34
+ LVL_WARN = 2
35
+ LVL_NOTICE = 3
36
+ LVL_INFO = 4
37
+ LVL_DEBUG = 5
38
+ LVL_DEBUG2 = 6
39
+ LVL_DEBUG3 = 7
40
40
 
41
- # Constants shared between the C++ and Ruby codebase. The C++ Constants.h
42
- # is automatically generated by the build system from the following
43
- # definitions.
44
- module SharedConstants
45
- # Default config values
46
- DEFAULT_LOG_LEVEL = 3
47
- DEFAULT_RUBY = "ruby"
48
- DEFAULT_PYTHON = "python"
49
- DEFAULT_NODEJS = "node"
50
- DEFAULT_MAX_POOL_SIZE = 6
51
- DEFAULT_POOL_IDLE_TIME = 300
52
- DEFAULT_START_TIMEOUT = 90_000
53
- DEFAULT_WEB_APP_USER = "nobody"
54
- DEFAULT_APP_ENV = "production"
55
- DEFAULT_SPAWN_METHOD = "smart"
56
- DEFAULT_CONCURRENCY_MODEL = "process"
57
- DEFAULT_STICKY_SESSIONS_COOKIE_NAME = "_passenger_route"
58
- DEFAULT_APP_THREAD_COUNT = 1
59
- DEFAULT_RESPONSE_BUFFER_HIGH_WATERMARK = 1024 * 1024 * 128
60
- DEFAULT_STAT_THROTTLE_RATE = 10
61
- DEFAULT_ANALYTICS_LOG_USER = DEFAULT_WEB_APP_USER
62
- DEFAULT_ANALYTICS_LOG_GROUP = ""
63
- DEFAULT_ANALYTICS_LOG_PERMISSIONS = "u=rwx,g=rx,o=rx"
64
- DEFAULT_UNION_STATION_GATEWAY_ADDRESS = "gateway.unionstationapp.com"
65
- DEFAULT_UNION_STATION_GATEWAY_PORT = 443
66
- DEFAULT_HTTP_SERVER_LISTEN_ADDRESS = "tcp://127.0.0.1:3000"
67
- DEFAULT_LOGGING_AGENT_LISTEN_ADDRESS = "tcp://127.0.0.1:9344"
68
- DEFAULT_LOGGING_AGENT_ADMIN_LISTEN_ADDRESS = "tcp://127.0.0.1:9345"
41
+ # Constants shared between the C++ and Ruby codebase. The C++ Constants.h
42
+ # is automatically generated by the build system from the following
43
+ # definitions.
44
+ module SharedConstants
45
+ # Default config values
46
+ DEFAULT_LOG_LEVEL = 3
47
+ DEFAULT_RUBY = "ruby"
48
+ DEFAULT_PYTHON = "python"
49
+ DEFAULT_NODEJS = "node"
50
+ DEFAULT_MAX_POOL_SIZE = 6
51
+ DEFAULT_POOL_IDLE_TIME = 300
52
+ DEFAULT_START_TIMEOUT = 90_000
53
+ DEFAULT_WEB_APP_USER = "nobody"
54
+ DEFAULT_APP_ENV = "production"
55
+ DEFAULT_SPAWN_METHOD = "smart"
56
+ DEFAULT_CONCURRENCY_MODEL = "process"
57
+ DEFAULT_STICKY_SESSIONS_COOKIE_NAME = "_passenger_route"
58
+ DEFAULT_APP_THREAD_COUNT = 1
59
+ DEFAULT_RESPONSE_BUFFER_HIGH_WATERMARK = 1024 * 1024 * 128
60
+ DEFAULT_STAT_THROTTLE_RATE = 10
61
+ DEFAULT_ANALYTICS_LOG_USER = DEFAULT_WEB_APP_USER
62
+ DEFAULT_ANALYTICS_LOG_GROUP = ""
63
+ DEFAULT_ANALYTICS_LOG_PERMISSIONS = "u=rwx,g=rx,o=rx"
64
+ DEFAULT_UNION_STATION_GATEWAY_ADDRESS = "gateway.unionstationapp.com"
65
+ DEFAULT_UNION_STATION_GATEWAY_PORT = 443
66
+ DEFAULT_HTTP_SERVER_LISTEN_ADDRESS = "tcp://127.0.0.1:3000"
67
+ DEFAULT_LOGGING_AGENT_LISTEN_ADDRESS = "tcp://127.0.0.1:9344"
68
+ DEFAULT_LOGGING_AGENT_ADMIN_LISTEN_ADDRESS = "tcp://127.0.0.1:9345"
69
69
 
70
- # Size limits
71
- MESSAGE_SERVER_MAX_USERNAME_SIZE = 100
72
- MESSAGE_SERVER_MAX_PASSWORD_SIZE = 100
73
- POOL_HELPER_THREAD_STACK_SIZE = 1024 * 256
74
- DEFAULT_MBUF_CHUNK_SIZE = 16 * 32
75
- SERVER_KIT_MAX_SERVER_ENDPOINTS = 4
70
+ # Size limits
71
+ MESSAGE_SERVER_MAX_USERNAME_SIZE = 100
72
+ MESSAGE_SERVER_MAX_PASSWORD_SIZE = 100
73
+ POOL_HELPER_THREAD_STACK_SIZE = 1024 * 256
74
+ DEFAULT_MBUF_CHUNK_SIZE = 16 * 32
75
+ SERVER_KIT_MAX_SERVER_ENDPOINTS = 4
76
76
 
77
- # Time limits
78
- PROCESS_SHUTDOWN_TIMEOUT = 60 # In seconds
79
- PROCESS_SHUTDOWN_TIMEOUT_DISPLAY = "1 minute"
77
+ # Time limits
78
+ PROCESS_SHUTDOWN_TIMEOUT = 60 # In seconds
79
+ PROCESS_SHUTDOWN_TIMEOUT_DISPLAY = "1 minute"
80
80
 
81
- # Versions
82
- PASSENGER_VERSION = PhusionPassenger::VERSION_STRING
83
- SERVER_INSTANCE_DIR_STRUCTURE_MAJOR_VERSION = 2
84
- SERVER_INSTANCE_DIR_STRUCTURE_MINOR_VERSION = 0
81
+ # Versions
82
+ PASSENGER_VERSION = PhusionPassenger::VERSION_STRING
83
+ SERVER_INSTANCE_DIR_STRUCTURE_MAJOR_VERSION = 2
84
+ SERVER_INSTANCE_DIR_STRUCTURE_MINOR_VERSION = 0
85
85
 
86
- # Misc
87
- FEEDBACK_FD = 3
88
- PROGRAM_NAME = "Phusion Passenger"
89
- SERVER_TOKEN_NAME = "Phusion_Passenger"
90
- FLYING_PASSENGER_NAME = "Flying Passenger"
91
- INDEX_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide.html"
92
- APACHE2_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html"
93
- NGINX_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html"
94
- STANDALONE_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Standalone.html"
95
- SUPPORT_URL = "https://www.phusionpassenger.com/documentation_and_support"
96
- ENTERPRISE_URL = "https://www.phusionpassenger.com/enterprise"
97
- GLOBAL_NAMESPACE_DIRNAME = PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME_
98
- # Subdirectory under $HOME to use for storing stuff.
99
- USER_NAMESPACE_DIRNAME = PhusionPassenger::USER_NAMESPACE_DIRNAME_
100
- AGENT_EXE = "PassengerAgent"
101
- DEB_MAIN_PACKAGE = "passenger"
102
- DEB_DEV_PACKAGE = "passenger-dev"
103
- DEB_APACHE_MODULE_PACKAGE = "libapache2-mod-passenger"
104
- DEB_NGINX_PACKAGE = "nginx-extras"
105
- RPM_MAIN_PACKAGE = "passenger"
106
- RPM_DEV_PACKAGE = "passenger-devel"
107
- RPM_APACHE_MODULE_PACKAGE = "mod_passenger"
108
- RPM_NGINX_PACKAGE = "nginx"
109
- STANDALONE_NGINX_CONFIGURE_OPTIONS =
110
- "--with-cc-opt='-Wno-error' " <<
111
- "--without-http_fastcgi_module " <<
112
- "--without-http_scgi_module " <<
113
- "--without-http_uwsgi_module " <<
114
- "--with-http_gzip_static_module " <<
115
- "--with-http_stub_status_module " <<
116
- "--with-http_ssl_module"
117
- end
86
+ # Misc
87
+ FEEDBACK_FD = 3
88
+ PROGRAM_NAME = "Phusion Passenger"
89
+ SERVER_TOKEN_NAME = "Phusion_Passenger"
90
+ FLYING_PASSENGER_NAME = "Flying Passenger"
91
+ INDEX_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide.html"
92
+ APACHE2_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html"
93
+ NGINX_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html"
94
+ STANDALONE_DOC_URL = "https://www.phusionpassenger.com/documentation/Users%20guide%20Standalone.html"
95
+ SUPPORT_URL = "https://www.phusionpassenger.com/documentation_and_support"
96
+ ENTERPRISE_URL = "https://www.phusionpassenger.com/enterprise"
97
+ GLOBAL_NAMESPACE_DIRNAME = PhusionPassenger::GLOBAL_NAMESPACE_DIRNAME_
98
+ # Subdirectory under $HOME to use for storing stuff.
99
+ USER_NAMESPACE_DIRNAME = PhusionPassenger::USER_NAMESPACE_DIRNAME_
100
+ AGENT_EXE = "PassengerAgent"
101
+ DEB_MAIN_PACKAGE = "passenger"
102
+ DEB_DEV_PACKAGE = "passenger-dev"
103
+ DEB_APACHE_MODULE_PACKAGE = "libapache2-mod-passenger"
104
+ DEB_NGINX_PACKAGE = "nginx-extras"
105
+ RPM_MAIN_PACKAGE = "passenger"
106
+ RPM_DEV_PACKAGE = "passenger-devel"
107
+ RPM_APACHE_MODULE_PACKAGE = "mod_passenger"
108
+ RPM_NGINX_PACKAGE = "nginx"
109
+ STANDALONE_NGINX_CONFIGURE_OPTIONS =
110
+ "--with-cc-opt='-Wno-error' " <<
111
+ "--without-http_fastcgi_module " <<
112
+ "--without-http_scgi_module " <<
113
+ "--without-http_uwsgi_module " <<
114
+ "--with-http_gzip_static_module " <<
115
+ "--with-http_stub_status_module " <<
116
+ "--with-http_ssl_module"
117
+ end
118
118
 
119
- SharedConstants.constants.each do |name|
120
- const_set(name, SharedConstants.const_get(name)) unless const_defined? name
121
- end
119
+ SharedConstants.constants.each do |name|
120
+ const_set(name, SharedConstants.const_get(name)) unless const_defined? name
121
+ end
122
122
  end
@@ -25,111 +25,111 @@ PhusionPassenger.require_passenger_lib 'constants'
25
25
 
26
26
  module PhusionPassenger
27
27
 
28
- module DebugLogging
29
- # We don't refer to STDERR directly because STDERR's reference might
30
- # change during runtime.
31
- @@log_level = DEFAULT_LOG_LEVEL
32
- @@log_device = nil
33
- @@log_filename = nil
34
- @@stderr_evaluator = lambda { STDERR }
35
-
36
- def self.included(klass)
37
- klass.class_eval do
38
- private :debug
39
- private :trace
40
- end
41
- end
42
-
43
- def self.log_level
44
- return @@log_level
45
- end
46
-
47
- def self.log_level=(level)
48
- @@log_level = level
49
- end
50
-
51
- def self.log_file=(filename)
52
- if filename && filename.empty?
53
- @@log_filename = nil
54
- else
55
- @@log_filename = filename
56
- end
57
- @@log_device.close if @@log_device && !@@log_device.closed?
58
- @@log_device = nil
59
- end
60
-
61
- def self._log_device
62
- return @@log_device
63
- end
64
-
65
- def self.stderr_evaluator=(block)
66
- if block
67
- @@stderr_evaluator = block
68
- else
69
- @@stderr_evaluator = lambda { STDERR }
70
- end
71
- end
72
-
73
- def error(message)
74
- _output(1, message, 1)
75
- end
76
- module_function :error
77
-
78
- def warn(message)
79
- _output(2, message, 1)
80
- end
81
- module_function :warn
82
-
83
- def notice(message)
84
- _output(3, message, 1)
85
- end
86
- module_function :notice
87
-
88
- def info(message)
89
- _output(4, message, 1)
90
- end
91
- module_function :info
92
-
93
- def debug(message)
94
- _output(5, message, 1)
95
- end
96
- module_function :debug
97
-
98
- def trace(level, message)
99
- _output(4 + level, message, 1)
100
- end
101
- module_function :trace
102
-
103
- def _output(level, message, nesting_level = 0)
104
- if @@log_level >= level
105
- if @@log_filename
106
- if !@@log_device || @@log_device.closed?
107
- @@log_device = File.open(@@log_filename, "a")
108
- end
109
- output = @@log_device
110
- else
111
- output = @@stderr_evaluator.call
112
- end
113
- location = caller[nesting_level].sub(/.*phusion_passenger\//, '')
114
- location.sub!(/(.*):.*/, '\1')
115
- now = Time.now
116
- time_str = now.strftime("%Y-%m-%d %H:%M:%S.")
117
- time_str << sprintf("%04d", now.usec / 100)
118
-
119
- current_thread = Thread.current
120
- if !(thread_id = current_thread[:id])
121
- current_thread.to_s =~ /:(0x[0-9a-f]+)/i
122
- thread_id = current_thread[:id] = $1 || '?'
123
- end
124
- if thread_name = current_thread[:name]
125
- thread_name = "(#{thread_name})"
126
- end
127
-
128
- output.write("[ #{time_str} #{$$}/#{thread_id}#{thread_name} #{location} ]: #{message}\n")
129
- output.flush
130
- end
131
- end
132
- module_function :_output
133
- end
28
+ module DebugLogging
29
+ # We don't refer to STDERR directly because STDERR's reference might
30
+ # change during runtime.
31
+ @@log_level = DEFAULT_LOG_LEVEL
32
+ @@log_device = nil
33
+ @@log_filename = nil
34
+ @@stderr_evaluator = lambda { STDERR }
35
+
36
+ def self.included(klass)
37
+ klass.class_eval do
38
+ private :debug
39
+ private :trace
40
+ end
41
+ end
42
+
43
+ def self.log_level
44
+ return @@log_level
45
+ end
46
+
47
+ def self.log_level=(level)
48
+ @@log_level = level
49
+ end
50
+
51
+ def self.log_file=(filename)
52
+ if filename && filename.empty?
53
+ @@log_filename = nil
54
+ else
55
+ @@log_filename = filename
56
+ end
57
+ @@log_device.close if @@log_device && !@@log_device.closed?
58
+ @@log_device = nil
59
+ end
60
+
61
+ def self._log_device
62
+ return @@log_device
63
+ end
64
+
65
+ def self.stderr_evaluator=(block)
66
+ if block
67
+ @@stderr_evaluator = block
68
+ else
69
+ @@stderr_evaluator = lambda { STDERR }
70
+ end
71
+ end
72
+
73
+ def error(message)
74
+ _output(1, message, 1)
75
+ end
76
+ module_function :error
77
+
78
+ def warn(message)
79
+ _output(2, message, 1)
80
+ end
81
+ module_function :warn
82
+
83
+ def notice(message)
84
+ _output(3, message, 1)
85
+ end
86
+ module_function :notice
87
+
88
+ def info(message)
89
+ _output(4, message, 1)
90
+ end
91
+ module_function :info
92
+
93
+ def debug(message)
94
+ _output(5, message, 1)
95
+ end
96
+ module_function :debug
97
+
98
+ def trace(level, message)
99
+ _output(4 + level, message, 1)
100
+ end
101
+ module_function :trace
102
+
103
+ def _output(level, message, nesting_level = 0)
104
+ if @@log_level >= level
105
+ if @@log_filename
106
+ if !@@log_device || @@log_device.closed?
107
+ @@log_device = File.open(@@log_filename, "a")
108
+ end
109
+ output = @@log_device
110
+ else
111
+ output = @@stderr_evaluator.call
112
+ end
113
+ location = caller[nesting_level].sub(/.*phusion_passenger\//, '')
114
+ location.sub!(/(.*):.*/, '\1')
115
+ now = Time.now
116
+ time_str = now.strftime("%Y-%m-%d %H:%M:%S.")
117
+ time_str << sprintf("%04d", now.usec / 100)
118
+
119
+ current_thread = Thread.current
120
+ if !(thread_id = current_thread[:id])
121
+ current_thread.to_s =~ /:(0x[0-9a-f]+)/i
122
+ thread_id = current_thread[:id] = $1 || '?'
123
+ end
124
+ if thread_name = current_thread[:name]
125
+ thread_name = "(#{thread_name})"
126
+ end
127
+
128
+ output.write("[ #{time_str} #{$$}/#{thread_id}#{thread_name} #{location} ]: #{message}\n")
129
+ output.flush
130
+ end
131
+ end
132
+ module_function :_output
133
+ end
134
134
 
135
135
  end