mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-10 22:18:59 +00:00
refactor(sandbox): name the E2B ledger meta-field count (#4764)
Admission derived the live-entry count as `HLEN - 3`, where 3 was the number of `meta:*` fields written 35 lines earlier in initialize(). Nothing tied the two together, so adding a fourth meta field would shift the capacity ceiling by one. Name the offset `META_FIELD_COUNT` next to initialize(), and add a guard test asserting a freshly initialized ledger holds exactly those three fields, plus one pinning that a hard_limit of N admits exactly N reservations. References #4575 Co-authored-by: icn5381 <255778606+icn5381@users.noreply.github.com>
This commit is contained in:
parent
f78730ab86
commit
46fd5c8a00
@ -18,6 +18,13 @@ local function now_ms()
|
|||||||
return tonumber(current[1]) * 1000 + math.floor(tonumber(current[2]) / 1000)
|
return tonumber(current[1]) * 1000 + math.floor(tonumber(current[2]) / 1000)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Number of 'meta:*' fields initialize() writes. Live entries ('r:'/'s:') are
|
||||||
|
-- counted as HLEN minus this, so the two must move together: adding a meta
|
||||||
|
-- field without updating this constant makes the ledger over-count usage and
|
||||||
|
-- reject one reservation early. test_ledger_meta_field_count_matches_constant
|
||||||
|
-- pins it against initialize()'s actual output.
|
||||||
|
local META_FIELD_COUNT = 3
|
||||||
|
|
||||||
local function initialize(hard_limit)
|
local function initialize(hard_limit)
|
||||||
redis.call('HSET', KEYS[1],
|
redis.call('HSET', KEYS[1],
|
||||||
'meta:state', 'initializing',
|
'meta:state', 'initializing',
|
||||||
@ -57,7 +64,7 @@ if operation == 'reserve' then
|
|||||||
if redis.call('HEXISTS', KEYS[1], field) == 1 then
|
if redis.call('HEXISTS', KEYS[1], field) == 1 then
|
||||||
return 'GRANTED'
|
return 'GRANTED'
|
||||||
end
|
end
|
||||||
if redis.call('HLEN', KEYS[1]) - 3 >= tonumber(hard_limit) then
|
if redis.call('HLEN', KEYS[1]) - META_FIELD_COUNT >= tonumber(hard_limit) then
|
||||||
return 'FULL'
|
return 'FULL'
|
||||||
end
|
end
|
||||||
redis.call('HSET', KEYS[1], field, tostring(now_ms()))
|
redis.call('HSET', KEYS[1], field, tostring(now_ms()))
|
||||||
|
|||||||
@ -176,3 +176,33 @@ def test_mismatched_hard_limits_fail_closed(make_store) -> None:
|
|||||||
gateway_b.revision()
|
gateway_b.revision()
|
||||||
with pytest.raises(CapacityBackendError, match="configuration mismatch"):
|
with pytest.raises(CapacityBackendError, match="configuration mismatch"):
|
||||||
gateway_b.reserve("reservation")
|
gateway_b.reserve("reservation")
|
||||||
|
|
||||||
|
|
||||||
|
def test_ledger_meta_field_count_matches_constant(make_store) -> None:
|
||||||
|
# Admission derives the live-entry count as HLEN - META_FIELD_COUNT, so the
|
||||||
|
# Lua constant must equal the number of 'meta:*' fields initialize() writes.
|
||||||
|
# Adding a meta field without updating the constant also trips the existing
|
||||||
|
# concurrency tests, but those report an unexpected reservation outcome; this
|
||||||
|
# one names the cause.
|
||||||
|
store = make_store(3)
|
||||||
|
_initialize(store)
|
||||||
|
fields = store._redis.hkeys(store.key)
|
||||||
|
|
||||||
|
assert _counts(store) == (0, 0)
|
||||||
|
assert sorted(fields) == ["meta:hard_limit", "meta:revision", "meta:state"]
|
||||||
|
assert len(fields) == 3
|
||||||
|
|
||||||
|
|
||||||
|
def test_reserve_admits_exactly_hard_limit_entries(make_store) -> None:
|
||||||
|
# Locks the invariant the constant exists to protect: an off-by-one in the
|
||||||
|
# HLEN offset shifts the ceiling, which this catches regardless of how the
|
||||||
|
# offset happens to be spelled.
|
||||||
|
store = make_store(3)
|
||||||
|
_initialize(store)
|
||||||
|
|
||||||
|
granted = [store.reserve(f"reservation-{index}") for index in range(3)]
|
||||||
|
|
||||||
|
assert granted == [ReserveStatus.GRANTED] * 3
|
||||||
|
assert _counts(store) == (0, 3)
|
||||||
|
assert store.reserve("reservation-overflow") is ReserveStatus.FULL
|
||||||
|
assert store.reserve("reservation-0") is ReserveStatus.GRANTED
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user