From dec8be19dea101461f48f4fd3d0933bde7df49f5 Mon Sep 17 00:00:00 2001 From: MOVZX Date: Wed, 23 Sep 2026 09:45:20 -0400 Subject: [PATCH] [PLE] The pull registry refuses unbound or clashing names; test fixes A schema walk fails on any pointer-like int parameter of a custom op on the PLE path. The FULL_K test child calls the Marlin MoE GEMM by keyword against its v0.30.0 signature. Co-Authored-By: Hinata Signed-off-by: MOVZX --- vllm/model_executor/layers/ple_offload_layer.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/vllm/model_executor/layers/ple_offload_layer.py b/vllm/model_executor/layers/ple_offload_layer.py index ff581b205a..cc8bd73bfe 100644 --- a/vllm/model_executor/layers/ple_offload_layer.py +++ b/vllm/model_executor/layers/ple_offload_layer.py @@ -428,7 +428,21 @@ class PleOffloadLayer(nn.Module, ABC): self._host_output_ptr = host_output_ptr self._host_row_bytes = int(host_row_bytes) if host_output_ptr is not None: - _PULL_LAYERS[self._ple_offload_name] = self + # Hardening: the registry key is the name the + # traced graph carries, so it must be a real, unique layer name. + name = self._ple_offload_name + if name == "": + raise RuntimeError( + "PLE pull: setup_cross_process_offload on a layer with no " + "_ple_offload_name; the op would resolve nothing by name" + ) + prior = _PULL_LAYERS.get(name) + if prior is not None and prior is not self: + raise RuntimeError( + f"PLE pull: two layers armed under the name {name!r}; the op " + "would resolve the wrong layer's pointers" + ) + _PULL_LAYERS[name] = self def forward( self,