Address several edge cases in ProcessSupervisor
Fixed: - Do not determine `alive` status from the pidset returned by caller, since this can lead to "bouncing" state. - Swap loop-check with sleep call, since sleep suspends the calling thread, which may lead to the callback being invoked if `alive` is invalidated by another thread. - Do not trap INT and TERM by default; this was swallowing these signals for the Puma master. Changelog: fixed
显示
- lib/gitlab/process_supervisor.rb 9 个添加, 11 个删除lib/gitlab/process_supervisor.rb
- metrics_server/metrics_server.rb 0 个添加, 2 个删除metrics_server/metrics_server.rb
- sidekiq_cluster/cli.rb 4 个添加, 10 个删除sidekiq_cluster/cli.rb
- spec/commands/sidekiq_cluster/cli_spec.rb 6 个添加, 20 个删除spec/commands/sidekiq_cluster/cli_spec.rb
- spec/lib/gitlab/process_supervisor_spec.rb 74 个添加, 2 个删除spec/lib/gitlab/process_supervisor_spec.rb
- spec/metrics_server/metrics_server_spec.rb 6 个添加, 21 个删除spec/metrics_server/metrics_server_spec.rb
想要评论请 注册 或 登录