passenger 5.1.2 → 5.1.3

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 (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +19 -2
  3. data/LICENSE +1 -1
  4. data/bin/passenger +1 -1
  5. data/bin/passenger-config +1 -1
  6. data/bin/passenger-install-apache2-module +12 -3
  7. data/bin/passenger-install-nginx-module +1 -1
  8. data/bin/passenger-memory-stats +1 -1
  9. data/bin/passenger-status +1 -1
  10. data/build/agent.rb +1 -1
  11. data/build/apache2.rb +1 -1
  12. data/build/basics.rb +1 -1
  13. data/build/common_library.rb +1 -1
  14. data/build/cxx_tests.rb +1 -1
  15. data/build/documentation.rb +1 -1
  16. data/build/integration_tests.rb +1 -1
  17. data/build/misc.rb +1 -1
  18. data/build/nginx.rb +1 -1
  19. data/build/node_tests.rb +1 -1
  20. data/build/oxt_tests.rb +1 -1
  21. data/build/packaging.rb +15 -2
  22. data/build/ruby_extension.rb +1 -1
  23. data/build/ruby_tests.rb +1 -1
  24. data/build/support/cplusplus.rb +4 -3
  25. data/build/support/cxx_dependency_map.rb +2 -1
  26. data/build/support/general.rb +1 -1
  27. data/build/test_basics.rb +1 -1
  28. data/dev/ci/run_travis.sh +2 -1
  29. data/dev/copy_boost_headers +3 -3
  30. data/dev/index_cxx_dependencies.rb +4 -2
  31. data/doc/Users guide Apache.html +1 -1
  32. data/resources/templates/error_layout.html.template +1 -1
  33. data/resources/templates/undisclosed_error.html.template +1 -1
  34. data/src/agent/AgentMain.cpp +1 -1
  35. data/src/agent/Core/ApiServer.h +1 -1
  36. data/src/agent/Core/ApplicationPool/AbstractSession.h +1 -1
  37. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +1 -1
  38. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +1 -1
  39. data/src/agent/Core/ApplicationPool/Common.h +1 -1
  40. data/src/agent/Core/ApplicationPool/Context.h +1 -1
  41. data/src/agent/Core/ApplicationPool/ErrorRenderer.h +1 -1
  42. data/src/agent/Core/ApplicationPool/Group.h +1 -1
  43. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +1 -1
  44. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +1 -1
  45. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
  46. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +1 -1
  47. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +5 -5
  48. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  49. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +1 -1
  50. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +13 -13
  51. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
  52. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +1 -1
  53. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
  54. data/src/agent/Core/ApplicationPool/Options.h +1 -1
  55. data/src/agent/Core/ApplicationPool/Pool.h +1 -1
  56. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +4 -4
  57. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  58. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +1 -1
  59. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +1 -1
  60. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +1 -1
  61. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +1 -1
  62. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
  63. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  64. data/src/agent/Core/ApplicationPool/Process.h +1 -1
  65. data/src/agent/Core/ApplicationPool/Session.h +1 -1
  66. data/src/agent/Core/ApplicationPool/Socket.h +1 -1
  67. data/src/agent/Core/ApplicationPool/TestSession.h +1 -1
  68. data/src/agent/Core/Controller.h +1 -1
  69. data/src/agent/Core/Controller/AppResponse.h +1 -1
  70. data/src/agent/Core/Controller/BufferBody.cpp +1 -1
  71. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  72. data/src/agent/Core/Controller/Client.h +1 -1
  73. data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
  74. data/src/agent/Core/Controller/Hooks.cpp +1 -1
  75. data/src/agent/Core/Controller/Implementation.cpp +1 -1
  76. data/src/agent/Core/Controller/InitRequest.cpp +1 -1
  77. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -1
  78. data/src/agent/Core/Controller/InternalUtils.cpp +1 -1
  79. data/src/agent/Core/Controller/Miscellaneous.cpp +1 -1
  80. data/src/agent/Core/Controller/Request.h +1 -1
  81. data/src/agent/Core/Controller/SendRequest.cpp +1 -1
  82. data/src/agent/Core/Controller/StateInspectionAndConfiguration.cpp +1 -1
  83. data/src/agent/Core/Controller/TurboCaching.h +1 -1
  84. data/src/agent/Core/CoreMain.cpp +2 -2
  85. data/src/agent/Core/OptionParser.h +1 -1
  86. data/src/agent/Core/ResponseCache.h +1 -1
  87. data/src/agent/Core/SecurityUpdateChecker.h +5 -115
  88. data/src/agent/Core/SpawningKit/BackgroundIOCapturer.h +7 -7
  89. data/src/agent/Core/SpawningKit/Config.h +1 -1
  90. data/src/agent/Core/SpawningKit/DirectSpawner.h +12 -7
  91. data/src/agent/Core/SpawningKit/DummySpawner.h +1 -1
  92. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  93. data/src/agent/Core/SpawningKit/Options.h +1 -1
  94. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  95. data/src/agent/Core/SpawningKit/Result.h +1 -1
  96. data/src/agent/Core/SpawningKit/SmartSpawner.h +13 -8
  97. data/src/agent/Core/SpawningKit/Spawner.h +8 -5
  98. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -1
  99. data/src/agent/Core/UnionStation/Connection.h +3 -3
  100. data/src/agent/Core/UnionStation/Context.h +1 -1
  101. data/src/agent/Core/UnionStation/StopwatchLog.h +1 -1
  102. data/src/agent/Core/UnionStation/Transaction.h +1 -1
  103. data/src/agent/Shared/ApiServerUtils.h +1 -1
  104. data/src/agent/Shared/ApplicationPoolApiKey.h +1 -1
  105. data/src/agent/Shared/Base.cpp +1 -1
  106. data/src/agent/Shared/Base.h +1 -1
  107. data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +1 -1
  108. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -1
  109. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
  110. data/src/agent/UstRouter/ApiServer.h +1 -1
  111. data/src/agent/UstRouter/Client.h +1 -1
  112. data/src/agent/UstRouter/Controller.h +1 -1
  113. data/src/agent/UstRouter/FileSink.h +1 -1
  114. data/src/agent/UstRouter/LogSink.h +1 -1
  115. data/src/agent/UstRouter/OptionParser.h +1 -1
  116. data/src/agent/UstRouter/RemoteSender.h +1 -1
  117. data/src/agent/UstRouter/RemoteSink.h +1 -1
  118. data/src/agent/UstRouter/Transaction.h +1 -1
  119. data/src/agent/UstRouter/UstRouterMain.cpp +2 -2
  120. data/src/agent/Watchdog/AgentWatcher.cpp +14 -14
  121. data/src/agent/Watchdog/ApiServer.h +1 -1
  122. data/src/agent/Watchdog/CoreWatcher.cpp +1 -1
  123. data/src/agent/Watchdog/InstanceDirToucher.cpp +6 -6
  124. data/src/agent/Watchdog/UstRouterWatcher.cpp +1 -1
  125. data/src/agent/Watchdog/WatchdogMain.cpp +5 -5
  126. data/src/apache2_module/Bucket.cpp +1 -1
  127. data/src/apache2_module/Bucket.h +1 -1
  128. data/src/apache2_module/Configuration.cpp +1 -1
  129. data/src/apache2_module/Configuration.h +1 -1
  130. data/src/apache2_module/Configuration.hpp +1 -1
  131. data/src/apache2_module/ConfigurationCommands.cpp +1 -1
  132. data/src/apache2_module/ConfigurationCommands.cpp.cxxcodebuilder +1 -1
  133. data/src/apache2_module/ConfigurationFields.hpp +1 -1
  134. data/src/apache2_module/ConfigurationFields.hpp.cxxcodebuilder +1 -1
  135. data/src/apache2_module/ConfigurationSetters.cpp +1 -1
  136. data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +1 -1
  137. data/src/apache2_module/CreateDirConfig.cpp +1 -1
  138. data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +1 -1
  139. data/src/apache2_module/DirectoryMapper.h +1 -1
  140. data/src/apache2_module/Hooks.cpp +5 -5
  141. data/src/apache2_module/Hooks.h +1 -1
  142. data/src/apache2_module/MergeDirConfig.cpp +1 -1
  143. data/src/apache2_module/MergeDirConfig.cpp.cxxcodebuilder +1 -1
  144. data/src/apache2_module/SetHeaders.cpp +1 -1
  145. data/src/apache2_module/SetHeaders.cpp.cxxcodebuilder +1 -1
  146. data/src/apache2_module/mod_passenger.c +1 -1
  147. data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -1
  148. data/src/cxx_supportlib/AppTypes.cpp +1 -1
  149. data/src/cxx_supportlib/AppTypes.h +1 -1
  150. data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
  151. data/src/cxx_supportlib/BackgroundEventLoop.h +1 -1
  152. data/src/cxx_supportlib/Constants.h +2 -2
  153. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +1 -1
  154. data/src/cxx_supportlib/Crypto.cpp +28 -7
  155. data/src/cxx_supportlib/Crypto.h +2 -1
  156. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +1 -1
  157. data/src/cxx_supportlib/DataStructures/LString.cpp +1 -1
  158. data/src/cxx_supportlib/DataStructures/LString.h +1 -1
  159. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  160. data/src/cxx_supportlib/Exceptions.cpp +1 -1
  161. data/src/cxx_supportlib/Exceptions.h +1 -1
  162. data/src/cxx_supportlib/FileDescriptor.h +4 -4
  163. data/src/cxx_supportlib/Hooks.h +1 -1
  164. data/src/cxx_supportlib/InstanceDirectory.h +1 -1
  165. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +1 -1
  166. data/src/cxx_supportlib/Logging.cpp +1 -1
  167. data/src/cxx_supportlib/Logging.h +3 -3
  168. data/src/cxx_supportlib/LveLoggingDecorator.h +1 -1
  169. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +1 -1
  170. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  171. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  172. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  173. data/src/cxx_supportlib/MessageClient.h +1 -1
  174. data/src/cxx_supportlib/MessageReadersWriters.h +1 -1
  175. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  176. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  177. data/src/cxx_supportlib/SafeLibev.h +1 -1
  178. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
  179. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  180. data/src/cxx_supportlib/ServerKit/Client.h +1 -1
  181. data/src/cxx_supportlib/ServerKit/ClientRef.h +1 -1
  182. data/src/cxx_supportlib/ServerKit/Context.h +1 -1
  183. data/src/cxx_supportlib/ServerKit/CookieUtils.h +1 -1
  184. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  185. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +1 -1
  186. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +1 -1
  187. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  188. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +1 -1
  189. data/src/cxx_supportlib/ServerKit/HeaderTable.h +1 -1
  190. data/src/cxx_supportlib/ServerKit/Hooks.h +1 -1
  191. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  192. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +1 -1
  193. data/src/cxx_supportlib/ServerKit/HttpClient.h +1 -1
  194. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  195. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  196. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  197. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +1 -1
  198. data/src/cxx_supportlib/ServerKit/HttpServer.h +1 -1
  199. data/src/cxx_supportlib/ServerKit/Implementation.cpp +1 -1
  200. data/src/cxx_supportlib/ServerKit/Server.h +1 -1
  201. data/src/cxx_supportlib/StaticString.h +1 -1
  202. data/src/cxx_supportlib/UnionStationFilterSupport.cpp +1 -1
  203. data/src/cxx_supportlib/UnionStationFilterSupport.h +1 -1
  204. data/src/cxx_supportlib/Utils.cpp +16 -16
  205. data/src/cxx_supportlib/Utils.h +1 -1
  206. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +1 -1
  207. data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
  208. data/src/cxx_supportlib/Utils/BufferedIO.h +1 -1
  209. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +1 -1
  210. data/src/cxx_supportlib/Utils/CachedFileStat.h +1 -1
  211. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +1 -1
  212. data/src/cxx_supportlib/Utils/ClassUtils.h +1 -1
  213. data/src/cxx_supportlib/Utils/Curl.h +1 -1
  214. data/src/cxx_supportlib/Utils/DateParsing.h +1 -1
  215. data/src/cxx_supportlib/Utils/FastStringStream.h +1 -1
  216. data/src/cxx_supportlib/Utils/FileChangeChecker.h +1 -1
  217. data/src/cxx_supportlib/Utils/HashMap.h +1 -1
  218. data/src/cxx_supportlib/Utils/Hasher.cpp +1 -1
  219. data/src/cxx_supportlib/Utils/Hasher.h +1 -1
  220. data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
  221. data/src/cxx_supportlib/Utils/IOUtils.cpp +1 -1
  222. data/src/cxx_supportlib/Utils/IOUtils.h +1 -1
  223. data/src/cxx_supportlib/Utils/IniFile.h +1 -1
  224. data/src/cxx_supportlib/Utils/JsonUtils.h +1 -1
  225. data/src/cxx_supportlib/Utils/LargeFiles.h +1 -1
  226. data/src/cxx_supportlib/Utils/MemZeroGuard.h +1 -1
  227. data/src/cxx_supportlib/Utils/MemoryBarrier.h +1 -1
  228. data/src/cxx_supportlib/Utils/MessageIO.h +1 -1
  229. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  230. data/src/cxx_supportlib/Utils/OptionParsing.h +1 -1
  231. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +2 -3
  232. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +1 -1
  233. data/src/cxx_supportlib/Utils/ScopeGuard.h +5 -5
  234. data/src/cxx_supportlib/Utils/SpeedMeter.h +1 -1
  235. data/src/cxx_supportlib/Utils/StrIntUtils.cpp +1 -1
  236. data/src/cxx_supportlib/Utils/StrIntUtils.h +1 -1
  237. data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +1 -1
  238. data/src/cxx_supportlib/Utils/StringMap.h +1 -1
  239. data/src/cxx_supportlib/Utils/StringScanning.h +1 -1
  240. data/src/cxx_supportlib/Utils/SystemMetricsCollector.h +1 -1
  241. data/src/cxx_supportlib/Utils/SystemTime.cpp +1 -1
  242. data/src/cxx_supportlib/Utils/SystemTime.h +1 -1
  243. data/src/cxx_supportlib/Utils/Timer.h +1 -1
  244. data/src/cxx_supportlib/Utils/VariantMap.h +1 -1
  245. data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
  246. data/src/cxx_supportlib/WatchdogLauncher.h +9 -9
  247. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  248. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  249. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  250. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  251. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  252. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  253. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  254. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  255. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
  256. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
  257. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +3 -3
  258. data/src/cxx_supportlib/oxt/implementation.cpp +1 -1
  259. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  260. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  261. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  262. data/src/cxx_supportlib/oxt/system_calls.cpp +4 -4
  263. data/src/cxx_supportlib/oxt/system_calls.hpp +2 -2
  264. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  265. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  266. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -1
  267. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
  268. data/src/helper-scripts/backtrace-sanitizer.rb +1 -1
  269. data/src/helper-scripts/crash-watch.rb +1 -1
  270. data/src/helper-scripts/download_binaries/extconf.rb +1 -1
  271. data/src/helper-scripts/meteor-loader.rb +1 -1
  272. data/src/helper-scripts/node-loader.js +1 -1
  273. data/src/helper-scripts/prespawn +1 -1
  274. data/src/helper-scripts/rack-loader.rb +6 -6
  275. data/src/helper-scripts/rack-preloader.rb +7 -7
  276. data/src/helper-scripts/wsgi-loader.py +1 -1
  277. data/src/nginx_module/CacheLocationConfig.c +1 -1
  278. data/src/nginx_module/CacheLocationConfig.c.cxxcodebuilder +1 -1
  279. data/src/nginx_module/Configuration.c +1 -1
  280. data/src/nginx_module/Configuration.h +1 -1
  281. data/src/nginx_module/ConfigurationCommands.c +1 -1
  282. data/src/nginx_module/ConfigurationCommands.c.cxxcodebuilder +1 -1
  283. data/src/nginx_module/ContentHandler.c +1 -1
  284. data/src/nginx_module/ContentHandler.h +1 -1
  285. data/src/nginx_module/CreateLocationConfig.c +1 -1
  286. data/src/nginx_module/CreateLocationConfig.c.cxxcodebuilder +1 -1
  287. data/src/nginx_module/LocationConfig.h +1 -1
  288. data/src/nginx_module/LocationConfig.h.cxxcodebuilder +1 -1
  289. data/src/nginx_module/MergeLocationConfig.c +1 -1
  290. data/src/nginx_module/MergeLocationConfig.c.cxxcodebuilder +1 -1
  291. data/src/nginx_module/StaticContentHandler.c +1 -1
  292. data/src/nginx_module/StaticContentHandler.h +1 -1
  293. data/src/nginx_module/ngx_http_passenger_module.c +1 -1
  294. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  295. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +1 -1
  296. data/src/nodejs_supportlib/phusion_passenger/log_express.js +1 -1
  297. data/src/nodejs_supportlib/phusion_passenger/log_mongodb.js +1 -1
  298. data/src/nodejs_supportlib/phusion_passenger/ustreporter.js +2 -2
  299. data/src/nodejs_supportlib/phusion_passenger/ustrouter_connector.js +2 -2
  300. data/src/ruby_native_extension/extconf.rb +1 -1
  301. data/src/ruby_native_extension/passenger_native_support.c +1 -1
  302. data/src/ruby_supportlib/phusion_passenger.rb +4 -4
  303. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
  304. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
  305. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +1 -1
  306. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
  307. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
  308. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -1
  309. data/src/ruby_supportlib/phusion_passenger/common_library.rb +1 -1
  310. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +1 -1
  311. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +1 -1
  312. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  313. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +1 -1
  314. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  315. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  316. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +1 -1
  317. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  318. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
  319. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
  320. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +1 -1
  321. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +1 -0
  322. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +4 -4
  323. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +1 -1
  324. data/src/ruby_supportlib/phusion_passenger/config/main.rb +1 -1
  325. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +1 -1
  326. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +1 -1
  327. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +1 -1
  328. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +1 -1
  329. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  330. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +1 -1
  331. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +1 -1
  332. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
  333. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
  334. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -1
  335. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +1 -1
  336. data/src/ruby_supportlib/phusion_passenger/message_client.rb +1 -1
  337. data/src/ruby_supportlib/phusion_passenger/native_support.rb +1 -1
  338. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +1 -1
  339. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -1
  340. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +1 -1
  341. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +16 -4
  342. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +1 -1
  343. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
  344. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  345. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -1
  346. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +1 -1
  347. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
  348. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck.rb +12 -3
  349. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +21 -2
  350. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +1 -1
  351. data/src/ruby_supportlib/phusion_passenger/platform_info/macos.rb +45 -0
  352. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  353. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  354. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +1 -1
  355. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +1 -1
  356. data/src/ruby_supportlib/phusion_passenger/plugin.rb +1 -1
  357. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -1
  358. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  359. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +1 -1
  360. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
  361. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +1 -1
  362. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +1 -1
  363. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +1 -1
  364. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +1 -1
  365. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +1 -1
  366. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +1 -1
  367. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -1
  368. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  369. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
  370. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
  371. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +1 -1
  372. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +1 -1
  373. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  374. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  375. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +1 -1
  376. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +1 -1
  377. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  378. data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -1
  379. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +1 -1
  380. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +1 -1
  381. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +1 -1
  382. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +1 -1
  383. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +1 -1
  384. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +1 -1
  385. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  386. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  387. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +1 -1
  388. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  389. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  390. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  391. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +1 -1
  392. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  393. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  394. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  395. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
  396. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +2 -2
  397. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
  398. metadata +4 -9
  399. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.0 +0 -15477
  400. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.1 +0 -15477
  401. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/requests +0 -324
  402. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.0 +0 -3105
  403. data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.1 +0 -703
  404. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml +0 -4
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2015 Phusion Holding B.V.
3
+ * Copyright (c) 2015-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2010-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -947,7 +947,7 @@ apiServerShutdownFinished(Core::ApiServer::ApiServer *server) {
947
947
  */
948
948
  static void
949
949
  waitForExitEvent() {
950
- this_thread::disable_syscall_interruption dsi;
950
+ boost::this_thread::disable_syscall_interruption dsi;
951
951
  WorkingObjects *wo = workingObjects;
952
952
  fd_set fds;
953
953
  int largestFd = -1;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2010-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2010-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2016 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -59,11 +59,6 @@ private:
59
59
  string serverVersion;
60
60
  CurlProxyInfo proxyInfo;
61
61
  Crypto *crypto;
62
- #if BOOST_OS_MACOS
63
- SecKeychainRef defaultKeychain;
64
- SecKeychainRef keychain;
65
- bool usingPassengerKeychain;
66
- #endif
67
62
 
68
63
  void threadMain() {
69
64
  TRACE_POINT();
@@ -227,8 +222,8 @@ private:
227
222
  }
228
223
 
229
224
  #if BOOST_OS_MACOS
230
- // if not using a private keychain, preauth the security update check key in the user's keychain (this is for libcurl's benefit because they don't bother to authorize themselves to use the keys they import)
231
- if (!usingPassengerKeychain && !crypto->preAuthKey(clientCertPath.c_str(), CLIENT_CERT_PWD, CLIENT_CERT_LABEL)) {
225
+ // preauth the security update check key in the user's keychain (this is for libcurl's benefit because they don't bother to authorize themselves to use the keys they import)
226
+ if (!crypto->preAuthKey(clientCertPath.c_str(), CLIENT_CERT_PWD, CLIENT_CERT_LABEL)) {
232
227
  return CURLE_SSL_CERTPROBLEM;
233
228
  }
234
229
  if (CURLE_OK != (code = curl_easy_setopt(curl, CURLOPT_SSLCERTTYPE, "P12"))) {
@@ -298,83 +293,6 @@ public:
298
293
  checkIntervalSec = 0;
299
294
  #if BOOST_OS_MACOS
300
295
  clientCertPath = locator.getResourcesDir() + "/update_check_client_cert.p12";
301
- // Used to keep track of which approach we are using, false means we are preauthing the key in the running user's own keychain; true means we create a private keychain and set it as the default
302
- usingPassengerKeychain = false;
303
- defaultKeychain = NULL;
304
- keychain = NULL;
305
- OSStatus status = 0;
306
- char pathName [PATH_MAX];
307
- UInt32 length = PATH_MAX;
308
- memset(pathName, 0, PATH_MAX);
309
-
310
- status = SecKeychainCopyDefault(&defaultKeychain);
311
- if (status) {
312
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
313
- P_ERROR(string("Getting default keychain failed: ") +
314
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8) +
315
- " Passenger will not attempt to create a private keychain.");
316
- CFRelease(str);
317
- } else {
318
- status = SecKeychainGetPath(defaultKeychain, &length, pathName);
319
- P_DEBUG(string("username is: ") + getProcessUsername());
320
- if (status) {
321
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
322
- P_ERROR(string("Checking default keychain path failed: ") +
323
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8) +
324
- " Passenger may use system keychain.");
325
- CFRelease(str);
326
- pathName[0] = 0; // ensure the pathName compares cleanly
327
- } else {
328
- P_DEBUG(string("Old default keychain is: ") + pathName);
329
- }
330
- }
331
- // we don't care so much about which user we are, what we care about is is they have their own keychain, if the default keychain is the system keychain, then we need to try and create our own to avoid permissions issues
332
- if (strcmp(pathName, "/Library/Keychains/System.keychain") == 0) {
333
- usingPassengerKeychain = true;
334
- const uint size = 512;
335
- uint8_t keychainPassword[size];
336
- if (!crypto->generateRandomChars(keychainPassword, size)) {
337
- P_CRITICAL("Creating password for Passenger default keychain failed.");
338
- usingPassengerKeychain = false;
339
- } else {
340
- string keychainDir = instancePath;
341
- if (instancePath.length() == 0) {
342
- char currentPath[PATH_MAX];
343
- if (!getcwd(currentPath, PATH_MAX)) {
344
- P_ERROR(string("Failed to get cwd: ") + strerror(errno) + " Attempting to use relative path '.'");
345
- keychainDir = ".";
346
- } else {
347
- keychainDir = string(currentPath);
348
- }
349
- }
350
- // create keychain with long random password, then discard password after creation. We receive the keychain unlocked, and no-one else needs to access the keychain.
351
- status = SecKeychainCreate((keychainDir + "/passenger.keychain").c_str(), size, keychainPassword, false, NULL, &keychain);
352
- memset(keychainPassword, 0, size);
353
- if (status) {
354
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
355
- P_ERROR(string("Creating Passenger default keychain failed: ") +
356
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8) +
357
- " Passenger may fail to access system keychain.");
358
- CFRelease(str);
359
- usingPassengerKeychain = false;
360
- } else {
361
- // set keychain as default so libcurl uses it.
362
- status = SecKeychainSetDefault(keychain);
363
- if (status) {
364
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
365
- P_ERROR(string("Setting Passenger default keychain failed: ") +
366
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8) +
367
- " Passenger may fail to access system keychain.");
368
- CFRelease(str);
369
- usingPassengerKeychain = false;
370
- } else if (!crypto->preAuthKey(clientCertPath.c_str(), CLIENT_CERT_PWD, CLIENT_CERT_LABEL)) {
371
- P_ERROR("Failed to preauthorize Passenger Client Cert, you may experience popups from the Keychain.");
372
- /* } else {
373
- we have loaded the security update check key into the private keychain with the correct permissions, so libcurl should be able to use it. */
374
- }
375
- }
376
- }
377
- }
378
296
  #else
379
297
  clientCertPath = locator.getResourcesDir() + "/update_check_client_cert.pem";
380
298
  #endif
@@ -400,32 +318,6 @@ public:
400
318
  if (crypto) {
401
319
  delete crypto;
402
320
  }
403
- #if BOOST_OS_MACOS
404
- // if using a private keychain, cleanup keychain on shutdown
405
- if (usingPassengerKeychain) {
406
- OSStatus status = 0;
407
- if (defaultKeychain) {
408
- status = SecKeychainSetDefault(defaultKeychain);
409
- if (status) {
410
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
411
- P_ERROR(string("Restoring default keychain failed: ") +
412
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8));
413
- CFRelease(str);
414
- }
415
- CFRelease(defaultKeychain);
416
- }
417
- if (keychain) {
418
- status = SecKeychainDelete(keychain);
419
- if (status) {
420
- CFStringRef str = SecCopyErrorMessageString(status, NULL);
421
- P_ERROR(string("Deleting Passenger private keychain failed: ") +
422
- CFStringGetCStringPtr(str, kCFStringEncodingUTF8));
423
- CFRelease(str);
424
- }
425
- CFRelease(keychain);
426
- }
427
- }
428
- #endif
429
321
  }
430
322
 
431
323
  /**
@@ -658,10 +550,8 @@ public:
658
550
  } while (0);
659
551
 
660
552
  #if BOOST_OS_MACOS
661
- // if not using a private keychain remove the security update check key from the user's keychain so that if we are stopped/crash and are upgraded or reinstalled before restarting we don't have permission problems
662
- if (!usingPassengerKeychain) {
663
- crypto->killKey(CLIENT_CERT_LABEL);
664
- }
553
+ // remove the security update check key from the user's keychain so that if we are stopped/crash and are upgraded or reinstalled before restarting we don't have permission problems
554
+ crypto->killKey(CLIENT_CERT_LABEL);
665
555
  #endif
666
556
 
667
557
  if (signatureChars) {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -66,14 +66,14 @@ private:
66
66
 
67
67
  void capture() {
68
68
  TRACE_POINT();
69
- while (!this_thread::interruption_requested()) {
69
+ while (!boost::this_thread::interruption_requested()) {
70
70
  char buf[1024 * 8];
71
71
  ssize_t ret;
72
72
 
73
73
  UPDATE_TRACE_POINT();
74
74
  ret = syscalls::read(fd, buf, sizeof(buf));
75
75
  int e = errno;
76
- this_thread::disable_syscall_interruption dsi;
76
+ boost::this_thread::disable_syscall_interruption dsi;
77
77
  if (ret == 0) {
78
78
  break;
79
79
  } else if (ret == -1) {
@@ -115,8 +115,8 @@ public:
115
115
  ~BackgroundIOCapturer() {
116
116
  TRACE_POINT();
117
117
  if (thr != NULL) {
118
- this_thread::disable_interruption di;
119
- this_thread::disable_syscall_interruption dsi;
118
+ boost::this_thread::disable_interruption di;
119
+ boost::this_thread::disable_syscall_interruption dsi;
120
120
  thr->interrupt_and_join();
121
121
  delete thr;
122
122
  thr = NULL;
@@ -136,8 +136,8 @@ public:
136
136
  string stop() {
137
137
  TRACE_POINT();
138
138
  assert(thr != NULL);
139
- this_thread::disable_interruption di;
140
- this_thread::disable_syscall_interruption dsi;
139
+ boost::this_thread::disable_interruption di;
140
+ boost::this_thread::disable_syscall_interruption dsi;
141
141
  thr->interrupt_and_join();
142
142
  delete thr;
143
143
  thr = NULL;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -28,6 +28,7 @@
28
28
 
29
29
  #include <Core/SpawningKit/Spawner.h>
30
30
  #include <Constants.h>
31
+ #include <Logging.h>
31
32
  #include <LveLoggingDecorator.h>
32
33
  #include <limits.h> // for PTHREAD_STACK_MIN
33
34
  #include <pthread.h>
@@ -101,7 +102,7 @@ private:
101
102
  }
102
103
 
103
104
  static void *detachProcessMain(void *arg) {
104
- this_thread::disable_syscall_interruption dsi;
105
+ boost::this_thread::disable_syscall_interruption dsi;
105
106
  pid_t pid = (pid_t) (long) arg;
106
107
  syscalls::waitpid(pid, NULL, 0);
107
108
  return NULL;
@@ -126,7 +127,11 @@ private:
126
127
  if (shouldLoadShellEnvvars(options, preparation)) {
127
128
  command.push_back(preparation.userSwitching.shell);
128
129
  command.push_back(preparation.userSwitching.shell);
129
- command.push_back("-lc");
130
+ if (Passenger::getLogLevel() >= LVL_DEBUG3) {
131
+ command.push_back("-lxc");
132
+ } else {
133
+ command.push_back("-lc");
134
+ }
130
135
  command.push_back("exec \"$@\"");
131
136
  command.push_back("SpawnPreparerShell");
132
137
  } else {
@@ -155,8 +160,8 @@ public:
155
160
 
156
161
  virtual Result spawn(const Options &options) {
157
162
  TRACE_POINT();
158
- this_thread::disable_interruption di;
159
- this_thread::disable_syscall_interruption dsi;
163
+ boost::this_thread::disable_interruption di;
164
+ boost::this_thread::disable_syscall_interruption dsi;
160
165
  P_DEBUG("Spawning new process: appRoot=" << options.appRoot);
161
166
  possiblyRaiseInternalError(options);
162
167
 
@@ -249,8 +254,8 @@ public:
249
254
  UPDATE_TRACE_POINT();
250
255
  Result result;
251
256
  {
252
- this_thread::restore_interruption ri(di);
253
- this_thread::restore_syscall_interruption rsi(dsi);
257
+ boost::this_thread::restore_interruption ri(di);
258
+ boost::this_thread::restore_syscall_interruption rsi(dsi);
254
259
  result = negotiateSpawn(details);
255
260
  }
256
261
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2015 Phusion Holding B.V.
3
+ * Copyright (c) 2015-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2012-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2012-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2014-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2014-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Phusion Passenger - https://www.phusionpassenger.com/
3
- * Copyright (c) 2011-2015 Phusion Holding B.V.
3
+ * Copyright (c) 2011-2017 Phusion Holding B.V.
4
4
  *
5
5
  * "Passenger", "Phusion Passenger" and "Union Station" are registered
6
6
  * trademarks of Phusion Holding B.V.
@@ -29,6 +29,7 @@
29
29
  #include <Core/SpawningKit/Spawner.h>
30
30
  #include <Core/SpawningKit/PipeWatcher.h>
31
31
  #include <Constants.h>
32
+ #include <Logging.h>
32
33
  #include <LveLoggingDecorator.h>
33
34
 
34
35
  #include <adhoc_lve.h>
@@ -105,7 +106,11 @@ private:
105
106
  if (shouldLoadShellEnvvars(options, preparation)) {
106
107
  command.push_back(preparation.userSwitching.shell);
107
108
  command.push_back(preparation.userSwitching.shell);
108
- command.push_back("-lc");
109
+ if (Passenger::getLogLevel() >= LVL_DEBUG3) {
110
+ command.push_back("-lxc");
111
+ } else {
112
+ command.push_back("-lc");
113
+ }
109
114
  command.push_back("exec \"$@\"");
110
115
  command.push_back("SpawnPreparerShell");
111
116
  } else {
@@ -202,8 +207,8 @@ private:
202
207
 
203
208
  void startPreloader() {
204
209
  TRACE_POINT();
205
- this_thread::disable_interruption di;
206
- this_thread::disable_syscall_interruption dsi;
210
+ boost::this_thread::disable_interruption di;
211
+ boost::this_thread::disable_syscall_interruption dsi;
207
212
  assert(!preloaderStarted());
208
213
  P_DEBUG("Spawning new preloader: appRoot=" << options.appRoot);
209
214
  checkChrootDirectories(options);
@@ -292,8 +297,8 @@ private:
292
297
  details.timeout = options.startTimeout * 1000;
293
298
 
294
299
  {
295
- this_thread::restore_interruption ri(di);
296
- this_thread::restore_syscall_interruption rsi(dsi);
300
+ boost::this_thread::restore_interruption ri(di);
301
+ boost::this_thread::restore_syscall_interruption rsi(dsi);
297
302
  socketAddress = negotiatePreloaderStartup(details);
298
303
  }
299
304
  this->adminSocket = adminSocket.second;
@@ -324,8 +329,8 @@ private:
324
329
 
325
330
  void stopPreloader() {
326
331
  TRACE_POINT();
327
- this_thread::disable_interruption di;
328
- this_thread::disable_syscall_interruption dsi;
332
+ boost::this_thread::disable_interruption di;
333
+ boost::this_thread::disable_syscall_interruption dsi;
329
334
 
330
335
  if (!preloaderStarted()) {
331
336
  return;