Skip to content

docs: The Rust vLLM servicer switch needs no vLLM change: self-installing plugin and vllm serve --servicer-impl - #115

Merged
slin1237 merged 1 commit into
mainfrom
codex/nightly-docs-83f433aad0844627
Oct 7, 2026
Merged

slin1237 merged 1 commit into
mainfrom
codex/nightly-docs-83f433aad0844627

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Does selecting the Rust vLLM gRPC servicer still require a vLLM whose gRPC entrypoint carries the smg hook, and can the implementation be chosen on vLLM's own command line (vllm serve --grpc --servicer-impl rust) instead of only through SMG_VLLM_SERVICER_IMPL?

Why we need it

Source change: smg-project/smg@50ba16f

Commit 26 (#2755, 50ba16f7, 2026-10-04) removed the need for a vLLM-side hook, one day after merged docs PR #105 (which documented the hook as a requirement). Verified on current main: grpc_servicer/smg_grpc_servicer/vllm/launcher_switch.py installs the servicer switch over vLLM's serve_grpc from the launcher's own module-level import of this package's servicer classes (install_launcher_switch is called from health_servicer.py at import, plus a meta-path finder for late-loading launchers); grpc_servicer/pyproject.toml registers a vllm.general_plugins entry point (smg-servicer = smg_grpc_servicer.vllm.plugin:register), and plugin.py adds --servicer-impl {python,rust} to every FlexibleArgumentParser that defines --grpc (the vllm serve parser), with resolve_servicer_impl (rust.py:343-355) reading args.servicer_impl ahead of SMG_VLLM_SERVICER_IMPL and writing the decision back to the environment so require_python_impl agrees; plugin.py's module doc notes a VLLM_PLUGINS setting that leaves the plugin out only removes the flag — the env var works regardless. rust.py:upstream_hook_installed (def at line 380) now returns true when the launcher imports this package's servicer modules at module level OR carries the check in its own serve_grpc, and require_upstream_hook (lines 470-479) fails only when neither holds; require_python_impl (lines 364-377) names the one unswitchable form — "a launcher executed directly as main, or one that did not import smg_grpc_servicer.vllm.servicer before defining serve_grpc". The commit's grpc_servicer/README.md hunk states "it needs no vLLM change" and shows vllm serve Qwen/Qwen3-0.6B --grpc --port 50051 --servicer-impl rust. Stale docs, all in src/lib/content/getting-started/grpc-workers.md's Rust vLLM Servicer section (written by merged PR #105 on 2026-10-03, before this commit): line 107 "The switch is the SMG_VLLM_SERVICER_IMPL environment variable, read by upstream vLLM's gRPC entrypoint before it builds an engine" (the entrypoint no longer consults anything; the package installs the switch itself, and a --servicer-impl flag now also exists on vllm serve --grpc); line 133's requirement "a vLLM whose gRPC entrypoint consults the switch (smg_grpc_servicer.vllm.resolve_servicer_impl)" (false on main — any vLLM whose gRPC launcher imports the package's servicer classes, the stock shape, is switched unchanged); line 135 "the installed vLLM lacks the hook" (the fail-fast check now verifies the launcher will be switched, and the Python servicer's refusal covers the launcher-run-as-main case). getting-started/index.md:170 and :298 were read and stay accurate (the smg serve flag and env-var selection are unchanged), so the edit is scoped to grpc-workers.md. Version caveat: the commit landed after the v1.11.0 bump (commit 69, #2670, 2026-09-24); the section already frames the whole feature as newer than v1.11.0, so describe the self-installing switch as current-main behavior without naming a release. This is an engine-compatibility concern (which vLLM installations can serve the Rust servicer and what fails loudly), distinct from merged PR #105's smg serve selection surface, which it corrects from a newer primary commit; one independent concern: one commit changed one delivery mechanism for one switch, corrected in the one section that states the old requirement. No open or closed PR covers #2755, and no open PR touches grpc-workers.md (open PRs #110 and #107 hold concepts/architecture/grpc-pipeline.md, reference/api/messages.md, and getting-started/pd-disaggregation.md). Note: the cli-configuration scan's pending sglang-zmq-direct-backend concern also lists grpc-workers.md among its doc_paths; if that PR opens first, this concern must wait for it to merge.

Scope: grpc-workers / rust-servicer-switch-no-vllm-hook. Other concerns are deferred.

How to test

  • Passed the documentation path and size guard (under 1000 added plus deleted lines; no file-count limit).
  • Passed an independent accuracy and single-concern review.
  • Passed git diff --check and pnpm check and the production pnpm build.

Checklist

  • Tests added/updated (if applicable)
  • Docs updated (if applicable)
  • Commit includes a DCO sign-off

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: bf0e8deb-418f-4217-b5f5-f06ccb648953

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant