Skip to content

Stop calling exit 1 "Operation not permitted" and name a stale pnpm lockfile - #140

Draft
MickLesk wants to merge 3 commits into
mainfrom
fix/exit-code-1-explanation
Draft

MickLesk wants to merge 3 commits into
mainfrom
fix/exit-code-1-explanation

Conversation

@MickLesk

Copy link
Copy Markdown
Member

…

Exit status 1 is the command's own verdict; errno 1 is unrelated. The host also offered a DNS retry on every exit-1 failure because the word DNS matched the network check line in the log (ProxmoxVE #17913).

✍️ Description

🔗 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.

…ockfile

Exit status 1 is the command's own verdict; errno 1 is unrelated. The
host also offered a DNS retry on every exit-1 failure because the word
DNS matched the network check line in the log (ProxmoxVE #17913).
@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/exit-code-1-explanation \
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 both backends. Worth running on a Proxmox VE and an Incus host.

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

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.

Only the curl entries were guarded; cargo's 101 read as an APT
configuration error and git's 128 as an invalid exit argument. The host
now reads the failing command from .errinfo so its explanation and the
APT repair offer see the same guard.
The handler printed the raw log tail and the host repeated the same
output from .errinfo right below it. The container now prints the
captured output of the failing command and keeps the raw tail only for
failures that did not go through silent().
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