Fix antsibull-changelog failing under Forgejo Actions' non-blocking stdio #4

Merged
jsanchezd merged 1 commit from fix/release-nonblocking-io into main 2026-09-29 09:19:41 +00:00
Owner

antsibull-changelog imports ansible-core, which refuses to start if any of stdin/stdout/stderr is non-blocking. Confirmed live in run #13: the Forgejo Actions docker-exec environment hands the job non-blocking stdio, so both antsibull-changelog calls failed with a generic "ERROR: Uncaught exception" and no useful message.

Fix: clear O_NONBLOCK on all three fds via a short python3 snippet before the antsibull-changelog calls. Verified locally by running the exact script as a single bash -c invocation (matching how a run: | step actually executes): fails without the fix, exits 0 with it.

🤖 Generated with Claude Code

https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp

antsibull-changelog imports ansible-core, which refuses to start if any of stdin/stdout/stderr is non-blocking. Confirmed live in run #13: the Forgejo Actions docker-exec environment hands the job non-blocking stdio, so both antsibull-changelog calls failed with a generic "ERROR: Uncaught exception" and no useful message. Fix: clear O_NONBLOCK on all three fds via a short python3 snippet before the antsibull-changelog calls. Verified locally by running the exact script as a single `bash -c` invocation (matching how a `run: |` step actually executes): fails without the fix, exits 0 with it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp
Fix antsibull-changelog failing under Forgejo Actions' non-blocking stdio
All checks were successful
Ansible Lint / ansible-lint (pull_request) Successful in 34s
743a71c5c1
antsibull-changelog imports ansible-core, which refuses to start if any
of stdin/stdout/stderr is non-blocking. Confirmed live in run #13: the
Forgejo Actions docker-exec environment hands the job non-blocking
stdio, so both antsibull-changelog calls failed with a generic
"ERROR: Uncaught exception" and no useful message (only visible with
-v, which isn't passed). Clearing O_NONBLOCK on all three fds via a
short python3 snippet before the antsibull-changelog calls fixes it --
verified locally by running the exact same script as a single bash -c
invocation (matching how a `run: |` step actually executes): fails
without the fix, exits 0 with it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp
jsanchezd deleted branch fix/release-nonblocking-io 2026-09-29 09:19:41 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ansible-collections/silvarion.repos!4
No description provided.