passenger 6.0.23 → 6.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +26 -1
  3. data/Rakefile +7 -3
  4. data/bin/passenger-install-apache2-module +5 -0
  5. data/bin/passenger-install-nginx-module +17 -2
  6. data/build/apache2.rb +1 -1
  7. data/build/basics.rb +10 -4
  8. data/build/cxx_tests.rb +18 -7
  9. data/build/support/cxx_dependency_map.rb +40 -6
  10. data/build/test_basics.rb +4 -12
  11. data/package.json +1 -1
  12. data/passenger.gemspec +1 -1
  13. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
  14. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
  17. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
  18. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
  19. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
  20. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
  21. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
  22. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
  23. data/src/agent/Core/ApplicationPool/Group.h +15 -5
  24. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
  25. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
  26. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
  28. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
  29. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
  30. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
  31. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +0 -2
  33. data/src/agent/Core/ApplicationPool/Process.h +22 -6
  34. data/src/agent/Core/ApplicationPool/Session.h +6 -1
  35. data/src/agent/Core/Config.h +7 -3
  36. data/src/agent/Core/Controller/Config.h +1 -1
  37. data/src/agent/Core/CoreMain.cpp +10 -17
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
  39. data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
  40. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  41. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
  42. data/src/agent/Core/SpawningKit/Spawner.h +4 -0
  43. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
  44. data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
  45. data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
  46. data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
  47. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
  48. data/src/agent/Watchdog/Config.h +1 -1
  49. data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
  50. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
  51. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
  52. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
  54. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
  55. data/src/cxx_supportlib/Constants.h +1 -1
  56. data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
  57. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  58. data/src/cxx_supportlib/SafeLibev.h +1 -3
  59. data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
  60. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
  61. data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
  62. data/src/cxx_supportlib/ServerKit/Server.h +0 -6
  63. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
  64. data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
  65. data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
  66. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
  67. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
  193. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
  196. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
  197. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
  198. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
  200. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
  201. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
  202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
  204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
  205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
  230. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
  231. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
  233. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
  236. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
  238. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
  244. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
  245. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
  246. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
  247. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
  248. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
  250. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
  252. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
  258. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  263. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
  264. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
  280. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
  281. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
  282. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
  285. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  296. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  297. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
  298. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
  299. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
  300. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
  301. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
  302. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
  303. data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
  304. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  305. metadata +21 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '090896f92fb435c62847f46a39df880b08d3081323c925b35be422bb701d44a4'
4
- data.tar.gz: 7c41513aef78b37d5ac93573afc01992f3d5ec6fe08101103ee0a0a2a8ab1cd4
3
+ metadata.gz: ee981e978956fd0e8eddd31a3872eb3aecfc598a6b696994d0231a753b12a3b1
4
+ data.tar.gz: 545c80e32fdb5a2d0801a8d38af9ec072ba5422319b561f0f33eee5354905d30
5
5
  SHA512:
6
- metadata.gz: 3c6daa23ca3426ebafa54f7d94b018467bbc6d2572799a50ddf111f0628673d5e308ead07dd8e7d06e9d6a8b63bbdc28090c1c581ef06e6a6fce1a143956a6ac
7
- data.tar.gz: 12130ca0f74963de002f8d1a777a2ce4563631a4e6ea7a654325efec072dd4e44e40989df4cbe9addad1b12664cdfd53d6ceeb9e76133f3ca169dc2b334ff478
6
+ metadata.gz: 8c6b9628356b9c16a8ea2df657aad1cd17d896539d0d822e0c2f63f56306effbfa9677814f597819f660baa62f373778a858fd68c2d21041b2ba4fe76939398f
7
+ data.tar.gz: 5c775c8e36ebfe6f6dfe290d0529da1105cfa22f2ef133d7dac02bdd3780e07b91d0f7694afcd9582a621ce801f0e1781b5f7653728d58506e9ab25e3408aaff
data/CHANGELOG CHANGED
@@ -1,4 +1,29 @@
1
- Release 6.0.23 (Not yet released)
1
+ Release 6.0.24 (Not yet released)
2
+ -------------
3
+ * [Nginx] Upgrades preferred Nginx to 1.26.2 from 1.26.1.
4
+ * [Enterprise] Smarter rolling restarts for better performance and reliability. We changed the way we route requests. Instead of picking the least-busy process, we now first prioritize new processes first. During a rolling restart, this new behavior leads to more efficient utilization of application caches, faster validation of new rollouts, and faster recovery from problematic deployments. Closes GH-2551.
5
+ * Fix a regression from 6.0.10 where running `passenger-config system-properties` would throw an error. Closes GH-2565.
6
+ * [Enterprise] Fix a memory corruption-related crash that could occur during rolling restarting.
7
+ * [Ubuntu] Add packages for Ubuntu 24.10 "oracular".
8
+ * [Ruby] Specify rackup version to avoid broken 1.0 gem. Closes GH-2559.
9
+ * Fixes compatibility with Ruby apps whose Gemfile.lock depends on base64.
10
+ * Upgrades Boost from 1.85 -> 1.86.
11
+ * Updated various library versions used in precompiled binaries (used for e.g. gem installs):
12
+ - ccache 4.10.1 -> 4.10.2
13
+ - cmake 3.30.1 -> 3.31.2
14
+ - curl 8.8.0 -> 8.11.0
15
+ - git 2.45.2 -> 2.47.1
16
+ - gnupg 2.4.5 -> 2.4.7
17
+ - libgpg_error 1.50 -> 1.51
18
+ - npth 1.7 -> 1.8
19
+ - openssl 3.3.1 -> 3.4.0
20
+ - rubygems 3.5.16 -> 3.5.23
21
+ - rubies:
22
+ - 3.2.4 -> 3.2.6
23
+ - 3.3.4 -> 3.3.6
24
+
25
+
26
+ Release 6.0.23
2
27
  -------------
3
28
  * [Enterprise] The rolling restart feature now replaces app processes in newest-to-oldest order, to make more efficient use of alive processes during the rolling-restart's duration. Closes GH-2551.
4
29
  * [Ruby] Improve Rack 3 compatibility.
data/Rakefile CHANGED
@@ -28,13 +28,17 @@ $LOAD_PATH.unshift("#{SOURCE_ROOT}/src/ruby_supportlib")
28
28
  if defined?(Bundler)
29
29
  clean_env = nil
30
30
 
31
- if Bundler.method_defined?(:with_unbundled_env)
31
+ if Bundler.respond_to?(:with_original_env)
32
+ Bundler.with_original_env do
33
+ clean_env = ENV.to_hash.dup
34
+ end
35
+ elsif Bundler.respond_to?(:with_unbundled_env)
32
36
  Bundler.with_unbundled_env do
33
- clean_env = ENV.to_hash
37
+ clean_env = ENV.to_hash.dup
34
38
  end
35
39
  else
36
40
  Bundler.with_clean_env do
37
- clean_env = ENV.to_hash
41
+ clean_env = ENV.to_hash.dup
38
42
  end
39
43
  end
40
44
  ENV.replace(clean_env)
@@ -122,6 +122,8 @@ class Installer < PhusionPassenger::AbstractInstaller
122
122
  end
123
123
 
124
124
  def run_steps
125
+ PlatformInfo.verbose = true if @verbose_depcheck
126
+
125
127
  if PhusionPassenger.build_system_dir.nil?
126
128
  # Invariant: PhusionPassenger.custom_packaged?
127
129
  if apache_module_available?
@@ -944,6 +946,9 @@ parser = OptionParser.new do |opts|
944
946
  opts.on("--force-colors", "Display colors even if stdout is not a TTY") do
945
947
  options[:colorize] = true
946
948
  end
949
+ opts.on("--verbose-depcheck", "Show more dependency checking-related logs") do
950
+ options[:verbose_depcheck] = true
951
+ end
947
952
  opts.on("--snippet", "Show just the Apache config snippet.") do
948
953
  options[:snippet] = true
949
954
  end
@@ -39,6 +39,7 @@ require 'digest/sha2'
39
39
  require 'optparse'
40
40
  require 'fileutils'
41
41
  require 'tmpdir'
42
+ PhusionPassenger.require_passenger_lib 'platform_info/compiler'
42
43
  PhusionPassenger.require_passenger_lib 'platform_info/ruby'
43
44
  PhusionPassenger.require_passenger_lib 'platform_info/openssl'
44
45
  PhusionPassenger.require_passenger_lib 'abstract_installer'
@@ -542,8 +543,18 @@ private
542
543
  end
543
544
 
544
545
  def build_nginx_configure_command(prefix, extra_configure_flags = nil)
545
- extra_cflags = "-Wno-error #{PlatformInfo.openssl_extra_cflags}".strip
546
- extra_ldflags = PlatformInfo.openssl_extra_ldflags
546
+ # When USE_ASAN is set, we compile our own code with AddressSanitizer but not Nginx.
547
+ # It's a third-party codebase we don't control so enabling AddressSanitizer for
548
+ # Nginx as well is more likely to hurt than help.
549
+ extra_cflags = [
550
+ "-Wno-error",
551
+ PlatformInfo.openssl_extra_cflags,
552
+ ].compact.join(" ").strip
553
+
554
+ extra_ldflags = [
555
+ PlatformInfo.openssl_extra_ldflags,
556
+ boolean_option('USE_ASAN') ? PlatformInfo.address_sanitizer_flags : nil,
557
+ ].compact.join(" ").strip
547
558
 
548
559
  command = "sh ./configure --prefix='#{prefix}' "
549
560
  command << "--with-http_ssl_module "
@@ -601,6 +612,10 @@ private
601
612
  end
602
613
  return digest.hexdigest
603
614
  end
615
+
616
+ def boolean_option(name)
617
+ ["1", "on", "true", "yes"].include?(ENV[name])
618
+ end
604
619
  end
605
620
 
606
621
  ORIG_ARGV = ARGV.dup
data/build/apache2.rb CHANGED
@@ -126,7 +126,7 @@ file(APACHE2_TARGET => dependencies) do
126
126
  PlatformInfo.apache2_module_cxx_ldflags,
127
127
  PlatformInfo.portability_cxx_ldflags,
128
128
  OPTIMIZE ? '-O' : nil,
129
- USE_ASAN ? "-shared-libasan" : nil
129
+ USE_ASAN ? PlatformInfo.address_sanitizer_flags : nil,
130
130
  ].compact
131
131
  )
132
132
  end
data/build/basics.rb CHANGED
@@ -27,6 +27,7 @@ begin
27
27
  rescue LoadError
28
28
  end
29
29
  require 'fileutils'
30
+ require 'shellwords'
30
31
  require 'phusion_passenger'
31
32
  PhusionPassenger.locate_directories
32
33
  PhusionPassenger.require_passenger_lib 'constants'
@@ -94,6 +95,7 @@ let(:cxx) { maybe_wrap_in_ccache(PhusionPassenger::PlatformInfo.cxx) }
94
95
  let(:libext) { PlatformInfo.library_extension }
95
96
 
96
97
  USE_ASAN = boolean_option('USE_ASAN')
98
+ USE_UBSAN = boolean_option('USE_UBSAN')
97
99
  USE_SELINUX = boolean_option('USE_SELINUX')
98
100
  OPTIMIZE = boolean_option('OPTIMIZE')
99
101
  LTO = OPTIMIZE && boolean_option('LTO')
@@ -112,16 +114,20 @@ EXTRA_PRE_CXXFLAGS = compiler_flag_option('EXTRA_PRE_CXXFLAGS')
112
114
  let(:extra_cflags) do
113
115
  result = PlatformInfo.default_extra_cflags.dup
114
116
  result << " " << compiler_flag_option('EXTRA_CFLAGS') if !compiler_flag_option('EXTRA_CFLAGS').empty?
115
- result << " #{PlatformInfo.address_sanitizer_flag}" if USE_ASAN && PlatformInfo.address_sanitizer_flag
117
+ result << " #{PlatformInfo.address_sanitizer_flags}" if USE_ASAN && PlatformInfo.address_sanitizer_flags
118
+ result << " #{PlatformInfo.undefined_behavior_sanitizer_flags}" if USE_UBSAN && PlatformInfo.undefined_behavior_sanitizer_flags
116
119
  result << " -fno-omit-frame-pointer" if USE_ASAN
120
+ result << " -fno-optimize-sibling-calls" if USE_ASAN && PlatformInfo.cc_supports_fno_optimize_sibling_calls_flag?
117
121
  result << " -DPASSENGER_DISABLE_THREAD_LOCAL_STORAGE" if !boolean_option('PASSENGER_THREAD_LOCAL_STORAGE', true)
118
122
  result
119
123
  end
120
124
  let(:extra_cxxflags) do
121
125
  result = PlatformInfo.default_extra_cxxflags.dup
122
126
  result << " " << compiler_flag_option('EXTRA_CXXFLAGS') if !compiler_flag_option('EXTRA_CXXFLAGS').empty?
123
- result << " #{PlatformInfo.address_sanitizer_flag}" if USE_ASAN && PlatformInfo.address_sanitizer_flag
127
+ result << " #{PlatformInfo.address_sanitizer_flags}" if USE_ASAN && PlatformInfo.address_sanitizer_flags
128
+ result << " #{PlatformInfo.undefined_behavior_sanitizer_flags}" if USE_UBSAN && PlatformInfo.undefined_behavior_sanitizer_flags
124
129
  result << " -fno-omit-frame-pointer" if USE_ASAN
130
+ result << " -fno-optimize-sibling-calls" if USE_ASAN && PlatformInfo.cxx_supports_fno_optimize_sibling_calls_flag?
125
131
  result << " -DPASSENGER_DISABLE_THREAD_LOCAL_STORAGE" if !boolean_option('PASSENGER_THREAD_LOCAL_STORAGE', true)
126
132
  result
127
133
  end
@@ -135,7 +141,7 @@ EXTRA_PRE_CXX_LDFLAGS = compiler_flag_option('EXTRA_PRE_LDFLAGS') + " " +
135
141
  # These should be included last in the command string, even after portability_*_ldflags.
136
142
  let(:extra_c_ldflags) do
137
143
  result = []
138
- result << PlatformInfo.address_sanitizer_flag if USE_ASAN
144
+ result << PlatformInfo.address_sanitizer_flags if USE_ASAN
139
145
  result << compiler_flag_option('EXTRA_LDFLAGS')
140
146
  result << compiler_flag_option('EXTRA_C_LDFLAGS')
141
147
  result.compact!
@@ -143,7 +149,7 @@ let(:extra_c_ldflags) do
143
149
  end
144
150
  let(:extra_cxx_ldflags) do
145
151
  result = []
146
- result << PlatformInfo.address_sanitizer_flag if USE_ASAN
152
+ result << PlatformInfo.address_sanitizer_flags if USE_ASAN
147
153
  result << compiler_flag_option('EXTRA_LDFLAGS')
148
154
  result << compiler_flag_option('EXTRA_CXX_LDFLAGS')
149
155
  result.compact!
data/build/cxx_tests.rb CHANGED
@@ -158,7 +158,15 @@ let(:test_cxx_include_paths) do
158
158
  end
159
159
 
160
160
  let(:test_cxx_flags) do
161
- ['-include test/cxx/TestSupport.h'] + basic_test_cxx_flags
161
+ # Some flags are necessary to make precompiled headers play well with ccache (and possibly also sccache):
162
+ # https://ccache.dev/manual/4.8.2.html#_precompiled_headers
163
+ if PlatformInfo.cxx_is_gcc?
164
+ ['-include test/cxx/TestSupport.h', '-fpch-preprocess']
165
+ elsif PlatformInfo.cxx_is_clang?
166
+ ["-include-pch test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}", '-Xclang', '-fno-pch-timestamp']
167
+ else
168
+ ['-include test/cxx/TestSupport.h']
169
+ end + basic_test_cxx_flags
162
170
  end
163
171
 
164
172
  let(:test_cxx_ldflags) do
@@ -182,7 +190,7 @@ TEST_CXX_OBJECTS.each_pair do |object, source|
182
190
  lambda { {
183
191
  :include_paths => test_cxx_include_paths,
184
192
  :flags => test_cxx_flags,
185
- :deps => 'test/cxx/TestSupport.h.gch'
193
+ :deps => "test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}"
186
194
  } }
187
195
  )
188
196
  end
@@ -204,14 +212,16 @@ file(TEST_CXX_TARGET => dependencies) do
204
212
  )
205
213
  end
206
214
 
207
- dependencies = [
215
+ cxx_test_dependencies = [
208
216
  TEST_CXX_TARGET,
209
217
  "#{TEST_OUTPUT_DIR}allocate_memory",
210
218
  NATIVE_SUPPORT_TARGET,
211
219
  AGENT_TARGET
212
220
  ].compact
221
+ task 'test:cxx:build' => cxx_test_dependencies
222
+
213
223
  desc "Run unit tests for the C++ components"
214
- task 'test:cxx' => dependencies do
224
+ task 'test:cxx' => cxx_test_dependencies do
215
225
  args = ENV['GROUPS'].to_s.split(";").map{ |name| "-g #{name}" }
216
226
 
217
227
  if level = string_option('LOG_LEVEL')
@@ -280,14 +290,15 @@ task 'test:cxx' => dependencies do
280
290
  end
281
291
  end
282
292
 
283
- file('test/cxx/TestSupport.h.gch' => generate_compilation_task_dependencies('test/cxx/TestSupport.h')) do
293
+ file("test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}" => generate_compilation_task_dependencies('test/cxx/TestSupport.h')) do
284
294
  compile_cxx(
285
- 'test/cxx/TestSupport.h.gch',
295
+ "test/cxx/TestSupport.h.#{PlatformInfo.precompiled_header_extension}",
286
296
  'test/cxx/TestSupport.h',
287
297
  :include_paths => test_cxx_include_paths,
288
298
  :flags => [
289
299
  "-x c++-header",
300
+ PlatformInfo.cxx_is_clang? ? "-Xclang -emit-pch" : nil,
290
301
  basic_test_cxx_flags
291
- ].flatten
302
+ ].compact.flatten
292
303
  )
293
304
  end
@@ -307,6 +307,7 @@ CXX_DEPENDENCY_MAP =
307
307
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
308
308
  "src/agent/Core/ApplicationPool/BasicGroupInfo.h"=>
309
309
  ["src/agent/Core/ApplicationPool/Context.h",
310
+ "src/agent/Core/ApplicationPool/Options.h",
310
311
  "src/agent/Core/SpawningKit/Config.h",
311
312
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
312
313
  "src/agent/Core/SpawningKit/Context.h",
@@ -393,6 +394,7 @@ CXX_DEPENDENCY_MAP =
393
394
  "src/agent/Core/ApplicationPool/BasicProcessInfo.h"=>
394
395
  ["src/agent/Core/ApplicationPool/BasicGroupInfo.h",
395
396
  "src/agent/Core/ApplicationPool/Context.h",
397
+ "src/agent/Core/ApplicationPool/Options.h",
396
398
  "src/agent/Core/SpawningKit/Config.h",
397
399
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
398
400
  "src/agent/Core/SpawningKit/Context.h",
@@ -563,7 +565,8 @@ CXX_DEPENDENCY_MAP =
563
565
  "src/cxx_supportlib/oxt/thread.hpp",
564
566
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
565
567
  "src/agent/Core/ApplicationPool/Context.h"=>
566
- ["src/agent/Core/SpawningKit/Config.h",
568
+ ["src/agent/Core/ApplicationPool/Options.h",
569
+ "src/agent/Core/SpawningKit/Config.h",
567
570
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
568
571
  "src/agent/Core/SpawningKit/Context.h",
569
572
  "src/agent/Core/SpawningKit/DirectSpawner.h",
@@ -750,6 +753,7 @@ CXX_DEPENDENCY_MAP =
750
753
  "src/agent/Core/ApplicationPool/Context.h",
751
754
  "src/agent/Core/ApplicationPool/Group.h",
752
755
  "src/agent/Core/ApplicationPool/Options.h",
756
+ "src/agent/Core/ApplicationPool/Pool.h",
753
757
  "src/agent/Core/ApplicationPool/Process.h",
754
758
  "src/agent/Core/ApplicationPool/Session.h",
755
759
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -818,6 +822,7 @@ CXX_DEPENDENCY_MAP =
818
822
  "src/cxx_supportlib/Utils/FastStringStream.h",
819
823
  "src/cxx_supportlib/Utils/IniFile.h",
820
824
  "src/cxx_supportlib/Utils/Lock.h",
825
+ "src/cxx_supportlib/Utils/MessagePassing.h",
821
826
  "src/cxx_supportlib/Utils/ScopeGuard.h",
822
827
  "src/cxx_supportlib/Utils/SpeedMeter.h",
823
828
  "src/cxx_supportlib/Utils/Timer.h",
@@ -848,6 +853,7 @@ CXX_DEPENDENCY_MAP =
848
853
  "src/agent/Core/ApplicationPool/Context.h",
849
854
  "src/agent/Core/ApplicationPool/Group.h",
850
855
  "src/agent/Core/ApplicationPool/Options.h",
856
+ "src/agent/Core/ApplicationPool/Pool.h",
851
857
  "src/agent/Core/ApplicationPool/Process.h",
852
858
  "src/agent/Core/ApplicationPool/Session.h",
853
859
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -916,6 +922,7 @@ CXX_DEPENDENCY_MAP =
916
922
  "src/cxx_supportlib/Utils/FastStringStream.h",
917
923
  "src/cxx_supportlib/Utils/IniFile.h",
918
924
  "src/cxx_supportlib/Utils/Lock.h",
925
+ "src/cxx_supportlib/Utils/MessagePassing.h",
919
926
  "src/cxx_supportlib/Utils/ScopeGuard.h",
920
927
  "src/cxx_supportlib/Utils/SpeedMeter.h",
921
928
  "src/cxx_supportlib/Utils/Timer.h",
@@ -946,6 +953,7 @@ CXX_DEPENDENCY_MAP =
946
953
  "src/agent/Core/ApplicationPool/Context.h",
947
954
  "src/agent/Core/ApplicationPool/Group.h",
948
955
  "src/agent/Core/ApplicationPool/Options.h",
956
+ "src/agent/Core/ApplicationPool/Pool.h",
949
957
  "src/agent/Core/ApplicationPool/Process.h",
950
958
  "src/agent/Core/ApplicationPool/Session.h",
951
959
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1014,6 +1022,7 @@ CXX_DEPENDENCY_MAP =
1014
1022
  "src/cxx_supportlib/Utils/FastStringStream.h",
1015
1023
  "src/cxx_supportlib/Utils/IniFile.h",
1016
1024
  "src/cxx_supportlib/Utils/Lock.h",
1025
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1017
1026
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1018
1027
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1019
1028
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1044,6 +1053,7 @@ CXX_DEPENDENCY_MAP =
1044
1053
  "src/agent/Core/ApplicationPool/Context.h",
1045
1054
  "src/agent/Core/ApplicationPool/Group.h",
1046
1055
  "src/agent/Core/ApplicationPool/Options.h",
1056
+ "src/agent/Core/ApplicationPool/Pool.h",
1047
1057
  "src/agent/Core/ApplicationPool/Process.h",
1048
1058
  "src/agent/Core/ApplicationPool/Session.h",
1049
1059
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1112,6 +1122,7 @@ CXX_DEPENDENCY_MAP =
1112
1122
  "src/cxx_supportlib/Utils/FastStringStream.h",
1113
1123
  "src/cxx_supportlib/Utils/IniFile.h",
1114
1124
  "src/cxx_supportlib/Utils/Lock.h",
1125
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1115
1126
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1116
1127
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1117
1128
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1142,6 +1153,7 @@ CXX_DEPENDENCY_MAP =
1142
1153
  "src/agent/Core/ApplicationPool/Context.h",
1143
1154
  "src/agent/Core/ApplicationPool/Group.h",
1144
1155
  "src/agent/Core/ApplicationPool/Options.h",
1156
+ "src/agent/Core/ApplicationPool/Pool.h",
1145
1157
  "src/agent/Core/ApplicationPool/Process.h",
1146
1158
  "src/agent/Core/ApplicationPool/Session.h",
1147
1159
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1211,6 +1223,7 @@ CXX_DEPENDENCY_MAP =
1211
1223
  "src/cxx_supportlib/Utils/FastStringStream.h",
1212
1224
  "src/cxx_supportlib/Utils/IniFile.h",
1213
1225
  "src/cxx_supportlib/Utils/Lock.h",
1226
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1214
1227
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1215
1228
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1216
1229
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1241,6 +1254,7 @@ CXX_DEPENDENCY_MAP =
1241
1254
  "src/agent/Core/ApplicationPool/Context.h",
1242
1255
  "src/agent/Core/ApplicationPool/Group.h",
1243
1256
  "src/agent/Core/ApplicationPool/Options.h",
1257
+ "src/agent/Core/ApplicationPool/Pool.h",
1244
1258
  "src/agent/Core/ApplicationPool/Process.h",
1245
1259
  "src/agent/Core/ApplicationPool/Session.h",
1246
1260
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1309,6 +1323,7 @@ CXX_DEPENDENCY_MAP =
1309
1323
  "src/cxx_supportlib/Utils/FastStringStream.h",
1310
1324
  "src/cxx_supportlib/Utils/IniFile.h",
1311
1325
  "src/cxx_supportlib/Utils/Lock.h",
1326
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1312
1327
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1313
1328
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1314
1329
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1339,6 +1354,7 @@ CXX_DEPENDENCY_MAP =
1339
1354
  "src/agent/Core/ApplicationPool/Context.h",
1340
1355
  "src/agent/Core/ApplicationPool/Group.h",
1341
1356
  "src/agent/Core/ApplicationPool/Options.h",
1357
+ "src/agent/Core/ApplicationPool/Pool.h",
1342
1358
  "src/agent/Core/ApplicationPool/Process.h",
1343
1359
  "src/agent/Core/ApplicationPool/Session.h",
1344
1360
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1407,6 +1423,7 @@ CXX_DEPENDENCY_MAP =
1407
1423
  "src/cxx_supportlib/Utils/FastStringStream.h",
1408
1424
  "src/cxx_supportlib/Utils/IniFile.h",
1409
1425
  "src/cxx_supportlib/Utils/Lock.h",
1426
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1410
1427
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1411
1428
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1412
1429
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1437,6 +1454,7 @@ CXX_DEPENDENCY_MAP =
1437
1454
  "src/agent/Core/ApplicationPool/Context.h",
1438
1455
  "src/agent/Core/ApplicationPool/Group.h",
1439
1456
  "src/agent/Core/ApplicationPool/Options.h",
1457
+ "src/agent/Core/ApplicationPool/Pool.h",
1440
1458
  "src/agent/Core/ApplicationPool/Process.h",
1441
1459
  "src/agent/Core/ApplicationPool/Session.h",
1442
1460
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1505,6 +1523,7 @@ CXX_DEPENDENCY_MAP =
1505
1523
  "src/cxx_supportlib/Utils/FastStringStream.h",
1506
1524
  "src/cxx_supportlib/Utils/IniFile.h",
1507
1525
  "src/cxx_supportlib/Utils/Lock.h",
1526
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1508
1527
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1509
1528
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1510
1529
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1535,6 +1554,7 @@ CXX_DEPENDENCY_MAP =
1535
1554
  "src/agent/Core/ApplicationPool/Context.h",
1536
1555
  "src/agent/Core/ApplicationPool/Group.h",
1537
1556
  "src/agent/Core/ApplicationPool/Options.h",
1557
+ "src/agent/Core/ApplicationPool/Pool.h",
1538
1558
  "src/agent/Core/ApplicationPool/Process.h",
1539
1559
  "src/agent/Core/ApplicationPool/Session.h",
1540
1560
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1603,6 +1623,7 @@ CXX_DEPENDENCY_MAP =
1603
1623
  "src/cxx_supportlib/Utils/FastStringStream.h",
1604
1624
  "src/cxx_supportlib/Utils/IniFile.h",
1605
1625
  "src/cxx_supportlib/Utils/Lock.h",
1626
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1606
1627
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1607
1628
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1608
1629
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1633,6 +1654,7 @@ CXX_DEPENDENCY_MAP =
1633
1654
  "src/agent/Core/ApplicationPool/Context.h",
1634
1655
  "src/agent/Core/ApplicationPool/Group.h",
1635
1656
  "src/agent/Core/ApplicationPool/Options.h",
1657
+ "src/agent/Core/ApplicationPool/Pool.h",
1636
1658
  "src/agent/Core/ApplicationPool/Process.h",
1637
1659
  "src/agent/Core/ApplicationPool/Session.h",
1638
1660
  "src/agent/Core/ApplicationPool/Socket.h",
@@ -1701,6 +1723,7 @@ CXX_DEPENDENCY_MAP =
1701
1723
  "src/cxx_supportlib/Utils/FastStringStream.h",
1702
1724
  "src/cxx_supportlib/Utils/IniFile.h",
1703
1725
  "src/cxx_supportlib/Utils/Lock.h",
1726
+ "src/cxx_supportlib/Utils/MessagePassing.h",
1704
1727
  "src/cxx_supportlib/Utils/ScopeGuard.h",
1705
1728
  "src/cxx_supportlib/Utils/SpeedMeter.h",
1706
1729
  "src/cxx_supportlib/Utils/Timer.h",
@@ -1787,6 +1810,7 @@ CXX_DEPENDENCY_MAP =
1787
1810
  "src/cxx_supportlib/Constants.h",
1788
1811
  "src/cxx_supportlib/DataStructures/HashMap.h",
1789
1812
  "src/cxx_supportlib/DataStructures/HashedStaticString.h",
1813
+ "src/cxx_supportlib/DataStructures/LString.h",
1790
1814
  "src/cxx_supportlib/DataStructures/StringKeyTable.h",
1791
1815
  "src/cxx_supportlib/DataStructures/StringMap.h",
1792
1816
  "src/cxx_supportlib/Exceptions.h",
@@ -1804,6 +1828,7 @@ CXX_DEPENDENCY_MAP =
1804
1828
  "src/cxx_supportlib/LoggingKit/Logging.h",
1805
1829
  "src/cxx_supportlib/LoggingKit/LoggingKit.h",
1806
1830
  "src/cxx_supportlib/LveLoggingDecorator.h",
1831
+ "src/cxx_supportlib/MemoryKit/mbuf.h",
1807
1832
  "src/cxx_supportlib/MemoryKit/palloc.h",
1808
1833
  "src/cxx_supportlib/ProcessManagement/Spawn.h",
1809
1834
  "src/cxx_supportlib/ProcessManagement/Utils.h",
@@ -6124,7 +6149,8 @@ CXX_DEPENDENCY_MAP =
6124
6149
  "src/cxx_supportlib/oxt/system_calls.hpp",
6125
6150
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6126
6151
  "src/agent/Core/SpawningKit/DirectSpawner.h"=>
6127
- ["src/agent/Core/SpawningKit/Config.h",
6152
+ ["src/agent/Core/ApplicationPool/Options.h",
6153
+ "src/agent/Core/SpawningKit/Config.h",
6128
6154
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6129
6155
  "src/agent/Core/SpawningKit/Context.h",
6130
6156
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6200,7 +6226,8 @@ CXX_DEPENDENCY_MAP =
6200
6226
  "src/cxx_supportlib/oxt/thread.hpp",
6201
6227
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6202
6228
  "src/agent/Core/SpawningKit/DummySpawner.h"=>
6203
- ["src/agent/Core/SpawningKit/Config.h",
6229
+ ["src/agent/Core/ApplicationPool/Options.h",
6230
+ "src/agent/Core/SpawningKit/Config.h",
6204
6231
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6205
6232
  "src/agent/Core/SpawningKit/Context.h",
6206
6233
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6275,6 +6302,7 @@ CXX_DEPENDENCY_MAP =
6275
6302
  "src/cxx_supportlib/Constants.h",
6276
6303
  "src/cxx_supportlib/DataStructures/HashMap.h",
6277
6304
  "src/cxx_supportlib/DataStructures/HashedStaticString.h",
6305
+ "src/cxx_supportlib/DataStructures/LString.h",
6278
6306
  "src/cxx_supportlib/DataStructures/StringKeyTable.h",
6279
6307
  "src/cxx_supportlib/DataStructures/StringMap.h",
6280
6308
  "src/cxx_supportlib/Exceptions.h",
@@ -6287,6 +6315,8 @@ CXX_DEPENDENCY_MAP =
6287
6315
  "src/cxx_supportlib/LoggingKit/Forward.h",
6288
6316
  "src/cxx_supportlib/LoggingKit/Logging.h",
6289
6317
  "src/cxx_supportlib/LoggingKit/LoggingKit.h",
6318
+ "src/cxx_supportlib/MemoryKit/mbuf.h",
6319
+ "src/cxx_supportlib/MemoryKit/palloc.h",
6290
6320
  "src/cxx_supportlib/ProcessManagement/Spawn.h",
6291
6321
  "src/cxx_supportlib/RandomGenerator.h",
6292
6322
  "src/cxx_supportlib/ResourceLocator.h",
@@ -6355,7 +6385,8 @@ CXX_DEPENDENCY_MAP =
6355
6385
  "src/cxx_supportlib/oxt/system_calls.hpp",
6356
6386
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6357
6387
  "src/agent/Core/SpawningKit/Factory.h"=>
6358
- ["src/agent/Core/SpawningKit/Config.h",
6388
+ ["src/agent/Core/ApplicationPool/Options.h",
6389
+ "src/agent/Core/SpawningKit/Config.h",
6359
6390
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6360
6391
  "src/agent/Core/SpawningKit/Context.h",
6361
6392
  "src/agent/Core/SpawningKit/DirectSpawner.h",
@@ -6637,6 +6668,7 @@ CXX_DEPENDENCY_MAP =
6637
6668
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6638
6669
  "src/agent/Core/SpawningKit/Handshake/WorkDir.h"=>
6639
6670
  ["src/cxx_supportlib/Exceptions.h",
6671
+ "src/cxx_supportlib/FileTools/FileManip.h",
6640
6672
  "src/cxx_supportlib/StaticString.h",
6641
6673
  "src/cxx_supportlib/StrIntTools/StrIntUtils.h",
6642
6674
  "src/cxx_supportlib/Utils.h",
@@ -6752,7 +6784,8 @@ CXX_DEPENDENCY_MAP =
6752
6784
  "src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h"=>
6753
6785
  [],
6754
6786
  "src/agent/Core/SpawningKit/SmartSpawner.h"=>
6755
- ["src/agent/Core/SpawningKit/Config.h",
6787
+ ["src/agent/Core/ApplicationPool/Options.h",
6788
+ "src/agent/Core/SpawningKit/Config.h",
6756
6789
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6757
6790
  "src/agent/Core/SpawningKit/Context.h",
6758
6791
  "src/agent/Core/SpawningKit/Exceptions.h",
@@ -6831,7 +6864,8 @@ CXX_DEPENDENCY_MAP =
6831
6864
  "src/cxx_supportlib/oxt/thread.hpp",
6832
6865
  "src/cxx_supportlib/oxt/tracable_exception.hpp"],
6833
6866
  "src/agent/Core/SpawningKit/Spawner.h"=>
6834
- ["src/agent/Core/SpawningKit/Config.h",
6867
+ ["src/agent/Core/ApplicationPool/Options.h",
6868
+ "src/agent/Core/SpawningKit/Config.h",
6835
6869
  "src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h",
6836
6870
  "src/agent/Core/SpawningKit/Context.h",
6837
6871
  "src/agent/Core/SpawningKit/Result.h",
data/build/test_basics.rb CHANGED
@@ -34,7 +34,7 @@ task :test => ['test:oxt', 'test:cxx', 'test:ruby', 'test:node', 'test:integrati
34
34
  desc "Clean all compiled test files"
35
35
  task 'test:clean' do
36
36
  sh("rm -rf #{TEST_OUTPUT_DIR}")
37
- sh("rm -f test/cxx/*.gch")
37
+ sh("rm -f test/cxx/*.#{PlatformInfo.precompiled_header_extension} test/cxx/*.gch test/cxx/*.pch")
38
38
  end
39
39
 
40
40
  task :clean => 'test:clean'
@@ -66,19 +66,11 @@ task 'test:install_deps' do
66
66
  sh "#{gem_install} bundler"
67
67
  end
68
68
 
69
- if install_base_deps
70
- unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0') || RUBY_PLATFORM =~ /darwin/
71
- if bundler_too_new?
72
- sh "bundle config set --local without future"
73
- else
74
- bundle_args.concat(["--without", "future"])
75
- end
76
- end
77
- else
69
+ if !install_base_deps
78
70
  if bundler_too_new?
79
- sh "bundle config set --local without 'base future'"
71
+ sh "bundle config set --local without 'base'"
80
72
  else
81
- bundle_args.concat(["--without", "base", "future"])
73
+ bundle_args.concat(["--without", "base"])
82
74
  end
83
75
  end
84
76
  sh "bundle install #{bundle_args.join(' ')} #{ENV['BUNDLE_ARGS']}"
data/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "body-parser": "^1.20.2",
12
12
  "css-loader": "^6.8.1",
13
13
  "css-minimizer-webpack-plugin": "^3.4.1",
14
- "express": "^4.18.2",
14
+ "express": "^4.19.2",
15
15
  "jquery": "^3.7.1",
16
16
  "mini-css-extract-plugin": "^2.7.6",
17
17
  "mocha": "^9.2.2",
data/passenger.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  }
26
26
  s.add_dependency 'rake', '>= 12.3.3'
27
27
  s.add_dependency 'rack', '>= 1.6.13'
28
- s.add_dependency 'rackup'
28
+ s.add_dependency 'rackup', '>= 2.0.0'
29
29
  s.files = Dir[*PhusionPassenger::Packaging::GLOB] -
30
30
  Dir[*PhusionPassenger::Packaging::EXCLUDE_GLOB]
31
31
  s.executables = PhusionPassenger::Packaging::USER_EXECUTABLES +
@@ -23,6 +23,12 @@
23
23
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
24
  * THE SOFTWARE.
25
25
  */
26
+ #ifndef _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
27
+ #define _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
28
+
29
+ #ifdef INTELLISENSE
30
+ #include <Core/ApplicationPool/Pool.h>
31
+ #endif
26
32
  #include <Core/ApplicationPool/Group.h>
27
33
 
28
34
  /*************************************************************************
@@ -179,3 +185,5 @@ Group::shutdown(const Callback &callback,
179
185
 
180
186
  } // namespace ApplicationPool2
181
187
  } // namespace Passenger
188
+
189
+ #endif // _PASSENGER_APPLICATION_POOL_GROUP_INITIALIZATION_AND_SHUTDOWN_CPP_
@@ -23,6 +23,12 @@
23
23
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
24
  * THE SOFTWARE.
25
25
  */
26
+ #ifndef _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
27
+ #define _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
28
+
29
+ #ifdef INTELLISENSE
30
+ #include <Core/ApplicationPool/Pool.h>
31
+ #endif
26
32
  #include <Core/ApplicationPool/Group.h>
27
33
 
28
34
  /*************************************************************************
@@ -178,7 +184,7 @@ Group::createNullProcessObject() {
178
184
  LockGuard l(context->memoryManagementSyncher);
179
185
  Process *process = context->processObjectPool.malloc();
180
186
  Guard guard(context, process);
181
- process = new (process) Process(&info, args);
187
+ process = new (process) Process(&info, info.group->restartsInitiated, args);
182
188
  process->shutdownNotRequired();
183
189
  guard.clear();
184
190
  return ProcessPtr(process, false);
@@ -215,7 +221,7 @@ Group::createProcessObject(const SpawningKit::Spawner &spawner,
215
221
  LockGuard l(context->memoryManagementSyncher);
216
222
  Process *process = context->processObjectPool.malloc();
217
223
  Guard guard(context, process);
218
- process = new (process) Process(&info, spawnResult, args);
224
+ process = new (process) Process(&info, info.group->restartsInitiated, spawnResult, args);
219
225
  guard.clear();
220
226
  return ProcessPtr(process, false);
221
227
  }
@@ -374,3 +380,5 @@ Group::callAbortLongRunningConnectionsCallback(const ProcessPtr &process) {
374
380
 
375
381
  } // namespace ApplicationPool2
376
382
  } // namespace Passenger
383
+
384
+ #endif // _PASSENGER_APPLICATION_POOL_GROUP_INTERNAL_UTILS_CPP_
@@ -23,6 +23,12 @@
23
23
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
24
  * THE SOFTWARE.
25
25
  */
26
+ #ifndef _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_
27
+ #define _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_
28
+
29
+ #ifdef INTELLISENSE
30
+ #include <Core/ApplicationPool/Pool.h>
31
+ #endif
26
32
  #include <Core/ApplicationPool/Group.h>
27
33
 
28
34
  /*************************************************************************
@@ -107,3 +113,5 @@ Group::getWrapperRegistry() const {
107
113
 
108
114
  } // namespace ApplicationPool2
109
115
  } // namespace Passenger
116
+
117
+ #endif // _PASSENGER_APPLICATION_POOL_GROUP_LIFETIME_AND_BASICS_CPP_