Skip to content
This repository was archived by the owner on Oct 16, 2025. It is now read-only.

Commit 6b071a0

Browse files
committed
surround requeue with a lock
1 parent e8cdf01 commit 6b071a0

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src-colladmin/actions/zookeeper_action.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -290,20 +290,26 @@ def perform_action
290290
job.load(@zk)
291291
js = job.json_property(@zk, MerrittZK::ZkKeys::STATUS)
292292
laststat = js.fetch(:last_successful_status, '')
293+
294+
job.lock(@zk)
295+
293296
case laststat
294297
when 'Pending', '', nil
295-
job.set_status(@zk, MerrittZK::JobState::Estimating)
298+
job.set_status(@zk, MerrittZK::JobState::Estimating, job_retry: true)
296299
when 'Estimating'
297-
job.set_status(@zk, MerrittZK::JobState::Provisioning)
300+
job.set_status(@zk, MerrittZK::JobState::Provisioning, job_retry: true)
298301
when 'Provisioning'
299-
job.set_status(@zk, MerrittZK::JobState::Downloading)
302+
job.set_status(@zk, MerrittZK::JobState::Downloading, job_retry: true)
300303
when 'Downloading'
301-
job.set_status(@zk, MerrittZK::JobState::Processing)
304+
job.set_status(@zk, MerrittZK::JobState::Processing, job_retry: true)
302305
when 'Processing'
303-
job.set_status(@zk, MerrittZK::JobState::Recording)
306+
job.set_status(@zk, MerrittZK::JobState::Recording, job_retry: true)
304307
when 'Recording'
305-
job.set_status(@zk, MerrittZK::JobState::Notify)
308+
job.set_status(@zk, MerrittZK::JobState::Notify, job_retry: true)
306309
end
310+
311+
job.unlock(@zk)
312+
307313
{ message: "Job #{job.id} requeued to status #{job.status_name}" }.to_json
308314
end
309315
end

0 commit comments

Comments
 (0)