From 9e29734ea61afaf911b4ae244ff3c3373f647e6e Mon Sep 17 00:00:00 2001 From: Manmath Hatte Date: Sat, 1 Aug 2026 14:58:55 +0530 Subject: [PATCH] fix(plugin): release node lock on getAllocateResponse failure When getAllocateResponse fails in the non-MIG Allocate path, PodAllocationFailed was not called, leaking the node lock. Every other error path in this function correctly releases the lock before returning. Signed-off-by: Manmath Hatte --- pkg/device-plugin/nvidiadevice/nvinternal/plugin/server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/server.go b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/server.go index 8a3890ead5..4640af7a71 100644 --- a/pkg/device-plugin/nvidiadevice/nvinternal/plugin/server.go +++ b/pkg/device-plugin/nvidiadevice/nvinternal/plugin/server.go @@ -647,6 +647,7 @@ func (plugin *NvidiaDevicePlugin) Allocate(ctx context.Context, reqs *kubeletdev } response, err := plugin.getAllocateResponse(plugin.GetContainerDeviceStrArray(devreq)) if err != nil { + PodAllocationFailed(nodename, current, NodeLockNvidia) return nil, fmt.Errorf("failed to get allocate response: %v", err) }