Bug
`NeuronWorker` in `vllm_neuron/worker/neuron_worker.py` does not implement `get_kv_connector_handshake_metadata()`. The V1 engine calls this method during startup to exchange NIXL agent metadata between prefill and decode workers.
Environment
- Instance: trn1.32xlarge
- Neuron SDK: 2.28.0
- vllm-neuron: 0.5.0 (release-0.5.0 branch)
- vLLM: 0.16.0
Error
```
AttributeError: 'NeuronWorker' object has no attribute 'get_kv_connector_handshake_metadata'
```
Steps to Reproduce
Start vllm-neuron with NixlConnector configured. The crash occurs during engine initialization when it tries to call the missing method.
Suggested Fix
Add the method to `NeuronWorker`, following the same pattern as `GPUWorker`:
```python
def get_kv_connector_handshake_metadata(self):
from vllm.distributed.kv_transfer import has_kv_transfer_group, get_kv_transfer_group
from vllm.distributed.parallel_state import get_tp_group
if not has_kv_transfer_group():
return None
connector = get_kv_transfer_group()
metadata = connector.get_handshake_metadata()
if metadata is None:
return None
return {get_tp_group().rank_in_group: metadata}
```
Context
Part of enabling NIXL-based disaggregated inference on Neuron/Trainium. The handshake metadata exchange is how prefill and decode workers discover each other's NIXL agents and memory descriptors.
Bug
`NeuronWorker` in `vllm_neuron/worker/neuron_worker.py` does not implement `get_kv_connector_handshake_metadata()`. The V1 engine calls this method during startup to exchange NIXL agent metadata between prefill and decode workers.
Environment
Error
```
AttributeError: 'NeuronWorker' object has no attribute 'get_kv_connector_handshake_metadata'
```
Steps to Reproduce
Start vllm-neuron with NixlConnector configured. The crash occurs during engine initialization when it tries to call the missing method.
Suggested Fix
Add the method to `NeuronWorker`, following the same pattern as `GPUWorker`:
```python
def get_kv_connector_handshake_metadata(self):
from vllm.distributed.kv_transfer import has_kv_transfer_group, get_kv_transfer_group
from vllm.distributed.parallel_state import get_tp_group
if not has_kv_transfer_group():
return None
connector = get_kv_transfer_group()
metadata = connector.get_handshake_metadata()
if metadata is None:
return None
return {get_tp_group().rank_in_group: metadata}
```
Context
Part of enabling NIXL-based disaggregated inference on Neuron/Trainium. The handshake metadata exchange is how prefill and decode workers discover each other's NIXL agents and memory descriptors.