Fix: token lookup condition should check hash_table not block_pool

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-24 01:21:49 +08:00
parent 0c88609caa
commit ee2301ae17

View File

@@ -189,8 +189,8 @@ class MooncakeBootstrapServer:
block_ids: list[int | None] = []
pinned_ids: list[int] = []
if req.token_ids is not None and self._block_pool is not None:
# Token-based lookup: compute hashes on C's side using C's hash function
if req.token_ids is not None and self._hash_table:
# Token-based lookup: compute hashes from tokens, match against synced hash table
block_ids, pinned_ids = self._lookup_by_tokens(
req.token_ids, req.num_tokens)
elif req.block_hashes is not None:
@@ -205,12 +205,12 @@ class MooncakeBootstrapServer:
break
logger.info(
"query_blocks: %d/%d matched (token_mode=%s, pool=%s)",
"query_blocks: %d/%d matched (token_mode=%s, hash_table=%d)",
len(pinned_ids),
req.num_tokens // self._kv_info.get("block_size", 512)
if req.num_tokens else len(req.block_hashes or []),
req.token_ids is not None,
self._block_pool is not None,
len(self._hash_table),
)
self._pinned[req.pin_token] = pinned_ids