Skip to content

sidekiq-cluster: put each sidekiq in a new pgroup

Nick Thomas requested to merge (removed):ce-40396-sidekiq-cluster-pgroups into master

What does this MR do?

sidekiq-cluster spawns N sidekiq processes, but leaves them all in the same process group. This means that if one child kills the pgroup, the whole thing goes.

Instead, place each sidekiq into its own pgroup. This means we can terminate all subprocesses for a given sidekiq independently of its siblings.

Continue to forward signals just to the sidekiq processes, rather than to the newly-created process groups. In https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25669/diffs , they will get the ability to forward those signals to the whole process group themselves, so doing it here would cause us to double-signal. The only time we want to kill the whole process group outside of sidekiq is if we're sending a KILL, STOP or other uninterruptible signal.

What are the relevant issue numbers?

Part of gitlab-ce#40396

Does this MR meet the acceptance criteria?

Edited by Nick Thomas

Merge request reports