You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(proxy): use local SPDK client for engine lookup in v2 VolumeGet
The v2 proxy VolumeGet handler previously used req.Address (the
DirectToURL of the service object) to create an SPDK client for both
engine and EngineFrontend lookups. For v2 volumes, the manager passes
the EngineFrontend's IM address as req.Address so the proxy can observe
the frontend device state.
When engine and EngineFrontend are on different Instance Managers (e.g.
after fault recovery), this causes the handler to look up the engine on
the EF's IM where it does not exist, resulting in a permanent NotFound
error.
Fix this by separating the two lookups:
- Engine: always use the local SPDK service (the proxy runs on the
engine's IM, so the engine is guaranteed to be local)
- EngineFrontend: use req.Address to reach the potentially remote EF IM
If the EF client connection fails, gracefully degrade to engine-only
info rather than failing the entire call.
Longhorn 13215
Signed-off-by: Derek Su <derek.su@suse.com>
0 commit comments