|
tests / pest (push) Failing after 9m23s
Details
tests / assets (push) Successful in 28s
Details
tests / release (push) Has been skipped
Details
Auf echter Hardware blieb jede Messkachel leer, während der Host sichtbar online war und vor zwei Minuten geantwortet hatte. Kein Zufall und kein Aussetzer: ein Entwurfsfehler. Nur der queue-provisioning-Container hängt im WireGuard-Netz — NET_ADMIN, /dev/net/tun, das wireguard-Volume. Der app-Container, der die Konsole rendert, hat überhaupt keine Route zu 10.66.0.x. Ich hatte den Proxmox-Aufruf in render() gelegt, also in den einen Container, der die Management-Adresse nicht erreichen kann. Ein Aufruf von dort konnte nie etwas anderes sein als eine Zeitüberschreitung. PingHosts schreibt dieselbe Regel seit Langem in seinen Kopf: "runs on the provisioning queue, which is where the Proxmox credentials are usable." Ich habe sie gelesen und nicht angewendet. Verschlimmert hat es mein eigenes catch (Throwable): der Grund wurde verschluckt, und die Kachel sagte "keine Messwerte" — ununterscheidbar davon, dass der Host schweigt. Auf dem Testhost fiel nichts auf, weil TEST-NET ohnehin nie antwortet. Jetzt zwei Hälften: - HostLoadSeries::collect() holt und legt ab, aus Jobs\CollectHostLoad auf der provisioning-Warteschlange, minütlich — der Takt, in dem Proxmox einen frischen Messwert schreibt. Ein Fehlschlag wird protokolliert, mit Host, Node und Grund. - HostLoadSeries::forHost() liest nur aus dem Zwischenspeicher und öffnet nie eine Verbindung. Ein Test hält das mit Http::assertNothingSent() fest. Der Eintrag lebt fünf Minuten bei minütlichem Sammeln: länger als der Takt, damit ein ausgefallener Lauf keine Seite leert, die eine Sekunde vorher in Ordnung war — und kurz genug, dass ein stehengebliebener Sammler die Zahlen mitnimmt, statt eine alte Stunde als aktuell stehenzulassen. Der Sammler ist ShouldBeUnique (Codex-Befund, P1). Die provisioning-Warteschlange ist DIESELBE, auf der Kunden-Bereitstellung läuft; ein stiller Host kostet den vollen HTTP-Zeitablauf, und ohne diese Sperre stauten sich minütlich neue Läufe hinter dem alten und verzögerten bezahlte Arbeit. Dasselbe Mittel, das CollectInstanceTraffic nebenan schon benutzt. Dazu: der Zustands-Punkt war mit 62 px so groß wie der Speicher-Ring nebenan. Eine gefüllte Scheibe wiegt optisch weit mehr als ein dünner Ring und erschlug die Kachel — jetzt 32 px. Und ein Test, der aus Versehen recht behielt: die Kachel-Prüfung verglich mit "50", was auch die 500 GB in der Instanzenliste darunter trifft. Sie prüft jetzt Zahlen, die sonst nirgends auf der Seite vorkommen. Noch offen, nicht hier angefasst: VmTemplateCheck fragt die Proxmox-API ebenfalls aus dem app-Container heraus, von der Bereitschaftsseite aus. Selber Fehler, Bestand, eigener Punkt. Geprüft: 2299 Tests grün, Pint sauber, Codex ohne Befund. Im Browser mit eingespielten Messwerten: sechs gefüllte Kacheln, Zustands-Scheibe in Proportion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| capacity.blade.php | ||
| check-result.blade.php | ||
| close-dunning-case.blade.php | ||
| confirm-delete-datacenter.blade.php | ||
| confirm-delete-incident.blade.php | ||
| confirm-delete-plan-draft.blade.php | ||
| confirm-delete-vpn-peer.blade.php | ||
| confirm-disable-two-factor.blade.php | ||
| confirm-end-other-sessions.blade.php | ||
| confirm-forget-secret.blade.php | ||
| confirm-generate-ssh-key.blade.php | ||
| confirm-publish-dpa.blade.php | ||
| confirm-reissue-vpn-peer.blade.php | ||
| confirm-remove-host.blade.php | ||
| confirm-restart-instance.blade.php | ||
| confirm-save-env.blade.php | ||
| confirm-save-secret.blade.php | ||
| confirm-switch-mode.blade.php | ||
| confirm-sync-catalogue.blade.php | ||
| customer-detail.blade.php | ||
| customers.blade.php | ||
| datacenters.blade.php | ||
| edit-customer.blade.php | ||
| edit-datacenter.blade.php | ||
| edit-export-target.blade.php | ||
| edit-invoice-series.blade.php | ||
| edit-mail-template.blade.php | ||
| edit-plan-family.blade.php | ||
| extend-dunning-deadline.blade.php | ||
| finance.blade.php | ||
| grant-plan.blade.php | ||
| host-create.blade.php | ||
| host-detail.blade.php | ||
| hosts.blade.php | ||
| inbox.blade.php | ||
| incidents.blade.php | ||
| instance-admin-access.blade.php | ||
| instances.blade.php | ||
| integrations.blade.php | ||
| invoices.blade.php | ||
| mail-log.blade.php | ||
| mail-preview.blade.php | ||
| mail-templates.blade.php | ||
| mail.blade.php | ||
| maintenance.blade.php | ||
| new-invoice.blade.php | ||
| overview.blade.php | ||
| payment-problems.blade.php | ||
| plan-versions.blade.php | ||
| plans.blade.php | ||
| processing-agreements.blade.php | ||
| provisioning.blade.php | ||
| proxy-hosts.blade.php | ||
| readiness.blade.php | ||
| record-withdrawal.blade.php | ||
| reissue-takeover.blade.php | ||
| resolve-failed-checkout.blade.php | ||
| revenue.blade.php | ||
| roles.blade.php | ||
| settings.blade.php | ||
| two-factor-setup.blade.php | ||
| vpn-config-access.blade.php | ||
| vpn.blade.php | ||