Skip to content

Run the host checks' probes during load, and report nothing a check stopped - #178

Closed
MickLesk wants to merge 1 commit into
mainfrom
fix/prechecks-parallel-no-telemetry
Closed

MickLesk wants to merge 1 commit into
mainfrom
fix/prechecks-parallel-no-telemetry

Conversation

@MickLesk

Copy link
Copy Markdown
Member

✍️ Description

The checks before the settings menu waited on pveversion, two pvesm status calls, pvesh and, on clusters, pvecm, one after the other. core/build.func now starts them in the background before it downloads the engine; the checks read the results through _cs_probe_read and run a command themselves only when its probe failed or never ran. The storage check trusts a probe's yes and asks a no again live.

Telemetry starts with the install record the build sends. A run that ends before it, in the checks or a dialog, reports nothing: a host that is not ready is not a failed install, and these runs made up a third of the failures since 27 October. Tools and add-ons have no such point, so their "requirement not met" codes send nothing either.

root_check now runs before pve_check. As another user /etc/pve/storage.cfg is unreadable, and the cluster check reported a damaged cluster. log_msg and log_section no longer end a run when the log cannot be written.

🔗 Related Issue

Fixes #

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected (Proxmox VE and/or Incus, as applicable).
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
  • API.txt regenerated – If a function signature or behavior changed, API.txt was updated to match.

🤖 AI Assistance (X in brackets)

If you used an AI tool (GitHub Copilot, Claude, ChatGPT, etc.) to write or generate any code in this PR, you must confirm compliance below.
Select exactly one option.

  • No AI used – Code was written without AI assistance.
  • AI was used – The output has been reviewed and corrected, and I take responsibility for it matching this repo's conventions.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • ✨ New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing behavior in a way that may require updates in every downstream script.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, docs/, CONTRIBUTING.md, or other docs.

…topped

The checks before the settings menu waited on pveversion, two pvesm status
calls, pvesh and, on clusters, pvecm, one after the other. core/build.func
now starts them in the background before it downloads the engine; the checks
read the results through _cs_probe_read and run a command themselves only
when its probe failed or never ran. The storage check trusts a probe's yes
and asks a no again live.

Telemetry starts with the install record the build sends. A run that ends
before it, in the checks or a dialog, reports nothing: a host that is not
ready is not a failed install, and these runs made up a third of the failures
since 27 October. Tools and add-ons have no such point, so their
"requirement not met" codes send nothing either.

root_check now runs before pve_check. As another user /etc/pve/storage.cfg
is unreadable, and the cluster check reported a damaged cluster. log_msg and
log_section no longer end a run when the log cannot be written.
@github-actions

Copy link
Copy Markdown
Contributor

Try this branch

The engine and the scripts resolve independently, so a production script can
be run against the engine from this PR by setting one variable:

COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/community-scripts/core/fix/prechecks-parallel-no-telemetry \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"

Swap ct/debian.sh for whatever exercises the change.

This PR touches pve/, so it needs a Proxmox VE host.

Run a script from a fork as well
curl -fsSL https://raw.githubusercontent.com/community-scripts/core/fix/prechecks-parallel-no-telemetry/tools/run.sh |
  bash -s -- https://raw.githubusercontent.com/YOU/DevScripts/your-branch ct/debian.sh \
             https://raw.githubusercontent.com/community-scripts/core/fix/prechecks-parallel-no-telemetry

Note that run.sh is reached through a pipe, so the script it starts inherits
an exhausted stdin. Whiptail is fine — it opens /dev/tty — but a plain read
would see EOF. The single-variable form above does not have that problem.

Useful flags while testing

dev_mode=net logs every engine fetch with status and duration, which is the
quickest way to confirm the branch is really being used. dev_mode=keep stops a
failed build from deleting the container along with the evidence.

@MickLesk MickLesk closed this Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant