[BUG][Agent] run_ps() ohne Timeout — ein hängender PowerShell-Aufruf blockiert den gesamten VM-Scan dauerhaft #214
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Befund
Windows-VM-Guest-Agent/src/collect.rs:32:Kein Timeout.
run_ps_blocking()(Zeile 50) ebenso. Damit kann jeder PowerShell-gestuetzte Collector unbegrenzt haengen:collect_updates,collect_docker,collect_disk,collect_network,collect_ports,collect_cpu,kernel_version,hostname_string.Timeouts existieren im Agent bisher nur beim HTTP-Probing (
collect.rs:663, 700/900 ms) und beim WS-Connect (main.rs:124, 15 s). Der gesamte Scan-Pfad ist ungeschuetzt.Auswirkung
collect_scan()sammelt sieben Collectors viatokio::join!.join!wartet auf alle — ein einziger haengender PowerShell-Prozess blockiert den kompletten Scan dauerhaft. Der Agent bleibt WS-seitig verbunden (Heartbeat laeuft in einer eigenen Task), liefert aber nie wieder einvm_scan. Im Dashboard sieht das aus wie "Agent verbunden, Daten veraltet" — eine Fehlersignatur, die schwer zuzuordnen ist, weil sie nicht wie ein Absturz aussieht.Realistische Ausloeser: WMI-Hang (klassisch nach Windows-Updates),
wingetwartet auf einen Quellen-Refresh,Get-CimInstanceauf einem ueberlasteten RDS-Host, Netzlaufwerk-Timeout inGet-Disk.Fix
Definition of Done
scan_partialim PayloadBlockiert #215 — die neuen Collectors dürfen nicht ohne Timeout-Budget dazukommen.