Windows MSI: Change/Modify cannot add the optional Netdata Driver (netdata_driver.sys) to an existing install
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Stack technique
- xml
- Domaine
- build-system
Piste de recherche
Commencez dans packaging/windows/netdata.wxs.in, en vous concentrant sur MaintenanceTypeDlg, VerifyReadyDlg, NDConfigDialog et NDComponentSelection autour des lignes 376–406 et 511. Générez le Windows MSI et testez le flux Change avec une installation existante. C’est terminé lorsque le flux atteint la case à cocher du pilote et peut ajouter netdata_driver.sys et netdata_driver.inf sans désinstaller.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
The Windows MSI installer's "Change" (Modify) maintenance flow cannot be used to add the optional Netdata Driver (netdata_driver.sys, required for cpu.temperature/GetHardwareInfo) to an already-installed Netdata. The only way to add the driver today is to fully uninstall and reinstall Netdata.
Root cause
In packaging/windows/netdata.wxs.in:
- The driver files are gated by a file-level condition:
Condition="NDDRVINST=1"onnetdata_driver.sys/netdata_driver.inf(lines 282, 284), insideFeatureGroup Id="NetdataDriver"referenced from the single top-levelFeature Id="Main". - The checkbox that sets
NDDRVINST(NDDriverCBX, line 511) lives on theNDComponentSelectiondialog, which is reachable only viaViewLicenseDlg → NDComponentSelection, itself reachable only viaWelcomeDlg.Next, gated byCondition="NOT Installed"(line 376) — i.e. only on a fresh install. - During a maintenance run,
MaintenanceTypeDlg'sChangeButtonis published straight toVerifyReadyDlg(line 403), bypassing the feature dialogs entirely. Compare with upstream WiX's stockWixUI_FeatureTree.wxs, whereChangeButtonroutes directly toCustomizeDlg(the feature-tree/customize screen). - The one theoretical way back into the feature dialogs —
VerifyReadyDlg'sBackbutton routing toNDConfigDialogwhenWixUI_InstallMode = "Change"(line 399, inherited verbatim from the upstream pattern) — never fires, because nothing in this custom UI fragment ever sets theWixUI_InstallModeproperty (it appears exactly once in the whole file, only as a read in that oneCondition).
Net effect: clicking Change in the maintenance dialog goes straight to a "ready to modify" confirmation screen with no way to reach the checkbox, and Back from there only loops to the maintenance type selector.
Impact
A user who installed Netdata without the driver, and later wants CPU temperature monitoring, cannot enable it via the installer's Modify/Change option — they must uninstall and reinstall Netdata from scratch. This is non-obvious and easy to miss (no error is shown; the checkbox visually just isn't there in Change mode).
Suggested fix (one of)
- Set
WixUI_InstallModeto"Change"onMaintenanceTypeDlg'sChangeButton(mirroring the upstreamWixUI_FeatureTree.wxspattern), so the existingVerifyReadyDlg.Back → NDConfigDialogcondition (line 399) actually fires. - Or route
ChangeButtondirectly toNDConfigDialog/NDComponentSelection, matching how upstream routesChangeButtonstraight toCustomizeDlg.
Possible command-line workaround (untested, worth verifying)
msiexec /i netdata-x64.msi NDDRVINST=1 REINSTALL=ALL REINSTALLMODE=amus (or similar REINSTALLMODE flags) may force Windows Installer to re-evaluate the file-level condition and add the driver files to an existing install without a full uninstall, since Windows Installer conditions are re-evaluated on CostFinalize using the properties passed on that invocation. This wasn't tested against this specific package (no Windows box available) — worth confirming on real hardware before recommending it to users. Note that ADDLOCAL=NetdataDriver alone will not work: NetdataDriver is a WiX FeatureGroup, not a real MSI Feature — the compiled MSI's Feature table only contains Main.
Evidence
packaging/windows/netdata.wxs.in:181-186—DRIVERDIR/INFDIRresolve to%SystemRoot%\system32\drivers\and%SystemRoot%\INF\, matching the pathsrc/collectors/windows.plugin/GetHardwareInfo.c:9checks.packaging/windows/netdata.wxs.in:281-286— driver file conditions.packaging/windows/netdata.wxs.in:376-406— dialog navigation chain.packaging/windows/netdata.wxs.in:511—NDDriverCBXcheckbox onNDComponentSelection.src/collectors/windows.plugin/GetHardwareInfo.c:88-231— the actual SCMCreateServiceA/StartServiceAcalls run inside the collector at Agent startup, not as an MSI custom action, so file presence on disk is the only thing the installer needs to get right.
Surfaced while reviewing/fixing PR #23200.
- Langage dominant
- Go
- Étoiles
- 81k
- Forks
- 6.7k
- Merge moyen
- 19 h 32 min
- PR mergées (30 j)
- 340
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de netdata/netdata
-
[Bug]: Updater false positive on Oracle Linux - repo check uses full OS version (ol/8.10) instead of major (ol/8)Peut-être pris @Sanjays2402 l’a pris il y a 6 jours. Ouvertebug needs triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: [Bug]: kickstart.sh rejects every --claim-url / --claim-proxy on macOS (BSD grep: "repetition-operator operand invalid")Peut-être pris @breken-ai l’a pris il y a 19 jours. Ouvertebug needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Agent SIGSEGV on /api/v2|v3/claim — claim_add_user_info_command() calls strchr(NULL) when the lib dir is not writablePeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
netdata/netdata#22786 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 12/100
netdata/netdata#24339 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: retention is far higher than configured (v2.12.1)Peut-être pris @stelfrag l’a pris il y a 1 jour. Ouvertebug needs triage
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
netdata/netdata#24336 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de netdata/netdata
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
BurntSushi/toml#530 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 1 jour
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:session-state issue-rating: 🦞 diamond lobster no-stale P2
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
openclaw/wacli#503 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] rmqctl error diagnostics emit terminal control charactersPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 81/100
apache/rocketmq-dashboard#6895 ·
Les mainteneurs répondent en général sous 3 jours