passenger 6.0.23 → 6.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

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_