`gdk stop rails-background-jobs` makes orphan sidekiq process
Overview
After gdk stop rails-background-jobs, the orphan sidekiq process is created and it consumes almost all RAM of developers laptop.
See https://app.slack.com/client/T02592416/C2Z9A056E/thread/C2Z9A056E-1634733859.058600 and https://app.slack.com/client/T02592416/C2Z9A056E.
If developers want to restart or stop the sidekiq, they need to reboot their laptop to prevent this issue. It makes the dev experience quite inconvenient.
Steps to replicate (optional)
-
gdk start rails-background-jobs -
ps axjf | grep -E -A 5 -B 5 '(rails-background-jobs|background_jobs|sidekiq)'outputs:
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
229826 229835 229835 229835 ? -1 Ss 1000 0:00 | \_ runsv rails-background-jobs
229835 229846 229835 229835 ? -1 S 1000 0:00 | | \_ svlogd -tt /home/bogdanvlviv/gitlab-development-kit/log/rails-background-jobs
229835 292492 292492 292492 ? -1 Ss 1000 0:00 | | \_ bash bin/background_jobs start_foreground --timeout 10
292492 292499 292499 292499 ? -1 Ssl 1000 0:00 | | \_ ruby bin/sidekiq-cluster default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver -P /home/bogdanvlviv/gitlab-development-kit/gitlab/tmp/pids/sidekiq-cluster.pid -e development --timeout 10
292499 292501 292501 292499 ? -1 Sl 1000 0:09 | | | \_ sidekiq 6.2.2 queues:default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver [0 of 10 busy]
292492 292500 292492 292492 ? -1 S 1000 0:00 | | \_ tee -a /home/bogdanvlviv/gitlab-development-kit/gitlab/log/sidekiq.log
-
gdk stop rails-background-jobs -
ps axjf | grep -E -A 5 -B 5 '(rails-background-jobs|background_jobs|sidekiq)'outputs orphan sidekiq processes:
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
229826 229835 229835 229835 ? -1 Ss 1000 0:00 | \_ runsv rails-background-jobs
229835 229846 229835 229835 ? -1 S 1000 0:00 | | \_ svlogd -tt /home/bogdanvlviv/gitlab-development-kit/log/rails-background-jobs
229826 229836 229836 229836 ? -1 Ss 1000 0:00 | \_ runsv postgresql
229836 229845 229836 229836 ? -1 S 1000 0:00 | \_ svlogd -tt /home/bogdanvlviv/gitlab-development-kit/log/postgresql
229836 240723 240723 240723 ? -1 Ss 1000 0:00 | \_ ruby support/postgresql-signal-wrapper /home/bogdanvlviv/.asdf/shims/postgres -D /home/bogdanvlviv/gitlab-development-kit/postgresql/data -k /home/bogdanvlviv/gitlab-development-kit/postgresql -h
240723 240837 240723 240723 ? -1 S 1000 0:01 | \_ /home/bogdanvlviv/.asdf/installs/postgres/12.6/bin/postgres -D /home/bogdanvlviv/gitlab-development-kit/postgresql/data -k /home/bogdanvlviv/gitlab-development-kit/postgresql -h
240837 241428 241428 241428 ? -1 Ss 1000 0:00 | \_ postgres: checkpointer
--
240837 292590 292590 292590 ? -1 Ss 1000 0:00 | \_ postgres: bogdanvlviv gitlabhq_development [local] idle
240837 292681 292681 292681 ? -1 Ss 1000 0:00 | \_ postgres: bogdanvlviv gitlabhq_development [local] idle
1909 278192 1924 1924 ? -1 Sl 1000 0:00 \_ /usr/bin/gnome-calendar --gapplication-service
1909 279015 279015 279015 ? -1 Ssl 1000 0:00 \_ /usr/libexec/flatpak-session-helper
1909 279019 279019 279019 ? -1 Ss 1000 0:00 \_ server --sh -n /run/user/1000/.flatpak-helper/pkcs11-flatpak-279015 --provider p11-kit-trust.so pkcs11:model=p11-kit-trust?write-protected=yes
1909 292499 292499 292499 ? -1 Ssl 1000 0:00 \_ ruby bin/sidekiq-cluster default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver -P /home/bogdanvlviv/gitlab-development-kit/gitlab/tmp/pids/sidekiq-cluster.pid -e development --timeout 10
292499 292501 292501 292499 ? -1 Sl 1000 0:14 \_ sidekiq 6.2.2 queues:default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver [0 of 10 busy]
- If repeat 1-4, we will see additiol orphan sidekiq process
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
229826 229835 229835 229835 ? -1 Ss 1000 0:00 | \_ runsv rails-background-jobs
229835 229846 229835 229835 ? -1 S 1000 0:00 | | \_ svlogd -tt /home/bogdanvlviv/gitlab-development-kit/log/rails-background-jobs
229826 229836 229836 229836 ? -1 Ss 1000 0:00 | \_ runsv postgresql
229836 229845 229836 229836 ? -1 S 1000 0:00 | \_ svlogd -tt /home/bogdanvlviv/gitlab-development-kit/log/postgresql
229836 240723 240723 240723 ? -1 Ss 1000 0:00 | \_ ruby support/postgresql-signal-wrapper /home/bogdanvlviv/.asdf/shims/postgres -D /home/bogdanvlviv/gitlab-development-kit/postgresql/data -k /home/bogdanvlviv/gitlab-development-kit/postgresql -h
240723 240837 240723 240723 ? -1 S 1000 0:01 | \_ /home/bogdanvlviv/.asdf/installs/postgres/12.6/bin/postgres -D /home/bogdanvlviv/gitlab-development-kit/postgresql/data -k /home/bogdanvlviv/gitlab-development-kit/postgresql -h
240837 241428 241428 241428 ? -1 Ss 1000 0:00 | \_ postgres: checkpointer
--
240837 293938 293938 293938 ? -1 Ss 1000 0:00 | \_ postgres: bogdanvlviv gitlabhq_development [local] idle
240837 293942 293942 293942 ? -1 Ss 1000 0:00 | \_ postgres: bogdanvlviv gitlabhq_development [local] idle
1909 278192 1924 1924 ? -1 Sl 1000 0:00 \_ /usr/bin/gnome-calendar --gapplication-service
1909 279015 279015 279015 ? -1 Ssl 1000 0:00 \_ /usr/libexec/flatpak-session-helper
1909 279019 279019 279019 ? -1 Ss 1000 0:00 \_ server --sh -n /run/user/1000/.flatpak-helper/pkcs11-flatpak-279015 --provider p11-kit-trust.so pkcs11:model=p11-kit-trust?write-protected=yes
1909 292499 292499 292499 ? -1 Ssl 1000 0:00 \_ ruby bin/sidekiq-cluster default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver -P /home/bogdanvlviv/gitlab-development-kit/gitlab/tmp/pids/sidekiq-cluster.pid -e development --timeout 10
292499 292501 292501 292499 ? -1 Sl 1000 0:22 | \_ sidekiq 6.2.2 queues:default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver [0 of 10 busy]
1909 293611 293611 293611 ? -1 Ssl 1000 0:00 \_ ruby bin/sidekiq-cluster default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver -P /home/bogdanvlviv/gitlab-development-kit/gitlab/tmp/pids/sidekiq-cluster.pid -e development --timeout 10
293611 293613 293613 293611 ? -1 Sl 1000 0:06 \_ sidekiq 6.2.2 queues:default,mailers,email_receiver,hashed_storage:hashed_storage_migrator,hashed_storage:hashed_storage_project_migrate,hashed_storage:hashed_storage_project_rollback,hashed_storage:hashed_storage_rollbacker,project_import_schedule,service_desk_email_receiver [0 of 10 busy]
Proposal (optional)
We should, somehow, prevent making this orphan sidekiq process on gdk stop.
https://en.wikipedia.org/wiki/Orphan_process
Environment (optional)
On Slack, people mention that it happens on both - Linux and macOS.
- Operating system: Linux lenovo 5.10.0-1050-oem #52-Ubuntu SMP Wed Oct 6 12:58:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- The contents of your
gdk.yml
hostname: gdk.test
port: 3443
https:
enabled: true
nginx:
enabled: true
ssl:
certificate: gdk.test.pem
key: gdk.test-key.pem
- Ruby version:
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux] - GDK version:
69f5ceea