Skip to content

Commit fd9e0f6

Browse files
committed
Address review: fix lease leak in requeue, remove dead :reset heartbeat state
1 parent b5208c6 commit fd9e0f6

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

ruby/lib/ci/queue/redis/base.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,9 @@ def heartbeat
373373
when :tick
374374
# command = [:tick, entry_id, lease_id]
375375
heartbeat_process.tick!(command[1], command[2])
376+
when :reset
377+
# Test finished, stop ticking until next test starts
378+
nil
376379
when :stop
377380
break
378381
end

ruby/lib/ci/queue/redis/worker.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def requeue(entry, offset: Redis.requeue_offset)
200200
test_id = CI::Queue::QueueEntry.test_id(entry)
201201
assert_reserved!(test_id)
202202
entry = reserved_entries.fetch(test_id, entry)
203-
lease = @reserved_leases[test_id]
203+
lease = @reserved_leases.delete(test_id)
204204
unreserve_entry(test_id)
205205
global_max_requeues = config.global_max_requeues(total)
206206

@@ -224,6 +224,7 @@ def requeue(entry, offset: Redis.requeue_offset)
224224
reserved_tests << test_id
225225
reserved_entries[test_id] = entry
226226
reserved_entry_ids[entry] = test_id
227+
@reserved_leases[test_id] = lease if lease
227228
end
228229
requeued
229230
end

0 commit comments

Comments
 (0)