debian-mirror-gitlab/spec/lib/system_check/sidekiq_check_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

90 lines
3.1 KiB
Ruby
Raw Permalink Normal View History

2021-04-17 20:07:23 +05:30
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe SystemCheck::SidekiqCheck do
describe '#multi_check' do
def stub_ps_output(output)
allow(Gitlab::Popen).to receive(:popen).with(%w(ps uxww)).and_return([output, nil])
end
def expect_check_output(matcher)
expect { subject.multi_check }.to output(matcher).to_stdout
end
it 'fails when no worker processes are running' do
stub_ps_output <<~PS
root 2193947 0.9 0.1 146564 18104 ? Ssl 17:34 0:00 ruby bin/sidekiq-cluster * -P ...
PS
expect_check_output include(
'Running? ... no',
'Please fix the error above and rerun the checks.'
)
end
it 'fails when more than one cluster process is running' do
stub_ps_output <<~PS
root 2193947 0.9 0.1 146564 18104 ? Ssl 17:34 0:00 ruby bin/sidekiq-cluster * -P ...
root 2193948 0.9 0.1 146564 18104 ? Ssl 17:34 0:00 ruby bin/sidekiq-cluster * -P ...
root 2193955 92.2 3.1 4675972 515516 ? Sl 17:34 0:13 sidekiq 5.2.9 ...
PS
expect_check_output include(
'Running? ... yes',
'Number of Sidekiq processes (cluster/worker) ... 2/1',
'Please fix the error above and rerun the checks.'
)
end
2023-03-04 22:38:38 +05:30
context 'when only a worker process is running' do
before do
2021-04-17 20:07:23 +05:30
stub_ps_output <<~PS
root 2193955 92.2 3.1 4675972 515516 ? Sl 17:34 0:13 sidekiq 5.2.9 ...
PS
2023-03-04 22:38:38 +05:30
end
2021-04-17 20:07:23 +05:30
2023-03-04 22:38:38 +05:30
it 'fails with the right message for systemd' do
allow(File).to receive(:symlink?).with(described_class::SYSTEMD_UNIT_PATH).and_return(true)
expect_check_output <<~OUTPUT
Running? ... yes
Number of Sidekiq processes (cluster/worker) ... 0/1
Try fixing it:
sudo systemctl restart gitlab-sidekiq.service
Please fix the error above and rerun the checks.
OUTPUT
2021-04-17 20:07:23 +05:30
end
2023-03-04 22:38:38 +05:30
it 'fails with the right message for sysvinit' do
allow(File).to receive(:symlink?).with(described_class::SYSTEMD_UNIT_PATH).and_return(false)
allow(subject).to receive(:gitlab_user).and_return('git')
2021-04-17 20:07:23 +05:30
expect_check_output <<~OUTPUT
Running? ... yes
Number of Sidekiq processes (cluster/worker) ... 0/1
2023-03-04 22:38:38 +05:30
Try fixing it:
sudo service gitlab stop
sudo pkill -u git -f sidekiq
sleep 10 && sudo pkill -9 -u git -f sidekiq
sudo service gitlab start
Please fix the error above and rerun the checks.
2021-04-17 20:07:23 +05:30
OUTPUT
end
end
2023-03-04 22:38:38 +05:30
it 'succeeds when one cluster process and one or more worker processes are running' do
stub_ps_output <<~PS
root 2193947 0.9 0.1 146564 18104 ? Ssl 17:34 0:00 ruby bin/sidekiq-cluster * -P ...
root 2193955 92.2 3.1 4675972 515516 ? Sl 17:34 0:13 sidekiq 5.2.9 ...
root 2193956 92.2 3.1 4675972 515516 ? Sl 17:34 0:13 sidekiq 5.2.9 ...
PS
expect_check_output <<~OUTPUT
Running? ... yes
Number of Sidekiq processes (cluster/worker) ... 1/2
OUTPUT
end
2021-04-17 20:07:23 +05:30
end
end