Skip to content

Commit faefbba

Browse files
committed
Fix race condition in test with recurring jobs getting enqueued
And affecting the result of `ReadyExecution.count`.
1 parent 9a38f5f commit faefbba

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

lib/solid_queue/supervisor/forks.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
module SolidQueue
44
class Supervisor::Forks < Supervisor
55
def kind
6-
"Supervisor(forks)"
6+
"Supervisor(fork)"
77
end
88

99
private

test/integration/forked_processes_lifecycle_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def assert_registered_workers_for(*queues)
211211
end
212212

213213
def assert_registered_supervisor
214-
processes = find_processes_registered_as("Supervisor(forks)")
214+
processes = find_processes_registered_as("Supervisor(fork)")
215215
assert_equal 1, processes.count
216216
assert_equal @pid, processes.first.pid
217217
end

test/integration/puma/plugin_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class PumaPluginTest < ActiveSupport::TestCase
5252
end
5353

5454
test "stop puma when solid queue's supervisor dies" do
55-
supervisor = find_processes_registered_as("Supervisor(forks)").first
55+
supervisor = find_processes_registered_as("Supervisor(fork)").first
5656

5757
signal_process(supervisor.pid, :KILL)
5858
wait_for_process_termination_with_timeout(@pid)

test/unit/supervisor_test.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,12 @@ class SupervisorTest < ActiveSupport::TestCase
104104
# Simnulate orphaned executions by just wiping the claiming process
105105
process.delete
106106

107-
pid = run_supervisor_as_fork
108-
wait_for_registered_processes(4)
107+
config_as_hash = {
108+
workers: [ { queues: "background", polling_interval: 10, processes: 2 } ],
109+
dispatchers: []
110+
}
111+
pid = run_supervisor_as_fork(load_configuration_from: config_as_hash)
112+
wait_for_registered_processes(3)
109113
assert_registered_supervisor(pid)
110114

111115
terminate_process(pid)
@@ -140,7 +144,7 @@ def assert_registered_dispatcher(supervisor_pid:, **metadata)
140144

141145
def assert_registered_supervisor(pid)
142146
skip_active_record_query_cache do
143-
processes = find_processes_registered_as("Supervisor(forks)")
147+
processes = find_processes_registered_as("Supervisor(fork)")
144148
assert_equal 1, processes.count
145149
assert_nil processes.first.supervisor
146150
assert_equal pid, processes.first.pid

0 commit comments

Comments
 (0)