Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug]: Precompiled node pools drop kernels that sanitize to the same name

Aperta
#3,098 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@SebTardif ci sta già lavorando.

Dal 20/10/2026.

  • #3099 di @SebTardif — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
20/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
go, kubernetes

Direzione di ricerca

Read internal/state/nodepool.go and the existing TestGetSanitizedKernelVersion test. Run the reported command, go test -count=1 -run TestGetNodePoolsKeepsPrecompiledKernelsThatSanitizeTogether ./internal/state/, to see the failing case. Done means nodes with the same raw kernel share a pool, while kernels that sanitize to the same name get separate pools with their own selectors and image tags; a linked pull request is already open.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Describe the bug

With spec.usePrecompiled: true, getNodePools keeps one node pool per sanitized kernel name. getSanitizedKernelVersion strips x86_64, aarch64, and an optional _64k. Two nodes whose raw feature.node.kubernetes.io/kernel-version.full values differ only by architecture or page size collapse into one pool.

The surviving pool's node selector and driver image tag use the first node's raw kernel. The other nodes get no driver DaemonSet. The NVIDIADriver can still become Ready.

This was found by reading internal/state/nodepool.go on main (operator v26.7.2). It is not a live cluster repro.

To reproduce

From the code path. TestGetSanitizedKernelVersion already expects these two strings to become 5.14.0-427.37.1.el9.4:

  • 5.14.0-427.37.1.el9_4.x86_64
  • 5.14.0-427.37.1.el9_4.aarch64

Put one GPU node on each kernel, with the same OS, under one NVIDIADriver that sets usePrecompiled: true.

On current main, getNodePools returns one pool. The unit test is:

go test -count=1 -run TestGetNodePoolsKeepsPrecompiledKernelsThatSanitizeTogether ./internal/state/

That test fails with 1 pool instead of 2.

Expected behavior

One pool per raw kernel. Nodes with the same raw kernel still share a pool. The sanitized name can stay shared. The selector and the image tag for each pool must keep that pool's own raw kernel.

I will open a pull request with that change.

Lingua principale
Go
Stelle
2.9k
Fork
576
Merge medio
1g 5h
PR unite (30g)
65

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di NVIDIA/gpu-operator

Tutte le issue di NVIDIA/gpu-operator

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.