fix: 라이브 프로브의 부분 측정과 실패 경로 정정 (v0.37.0) - #46
Merged
Conversation
A 200 whose body is not the expected envelope raised the parser's own exception straight out of the client: an HTML error page from something standing in front of pveproxy, or a changed envelope during a PVE upgrade, reached callers as a type they do not handle and took the admin dashboard down with a 500. Wrapping the parse inside the client closes every call site at once instead of each one enumerating another exception type. An unreadable body counts as transient, because the same request against a settled host parses.
Making a failed hypervisor probe non-fatal traded a loud signal for a silent one. A node whose storage read is refused stays reachable with the two storage fields null, and a client that sums the live rows drops it and shows the remaining nodes' total as the platform's, so the operator reads free capacity that is not there. The summary now carries liveCoverage: how many nodes are behind each sum, against the node count the sum should have covered. Three more ways the panel could mislead go with it. An OFFLINE node is probed again: OFFLINE keeps a node out of new placements and leaves its guests running, so skipping it dropped their memory out of the platform total. The guest-storage match now starts from the node column, which is NOT NULL, so a storage entry PVE sent without a name is not a 500. And both halves of the panel are built from one read of the node table, so a status change mid-request can no longer ship a row whose status and reachability contradict. The cost of asking a host that really is dead, one read timeout per dashboard load, is accepted deliberately and belongs to the scale-out round that will probe nodes in parallel under a budget.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 작업내용
⭐️ 검증
💬 리뷰 포인트