Skip to content

Cygwin CI: pin libuv1 so configure stops hanging, and drop the trace steps - #2465

Merged
gunterkoenigsmann merged 1 commit into
mainfrom
claude/cygwin-pin-libuv
Oct 6, 2026
Merged

gunterkoenigsmann merged 1 commit into
mainfrom
claude/cygwin-pin-libuv

Conversation

@gunterkoenigsmann

Copy link
Copy Markdown
Member

Requested by Gunter · project thread

Before: the Cygwin job hangs in configure, right after "Looking for wxWidgets libraries in:", until its 20-minute timeout. Since #2464 was merged, main's configure step also runs temporary diagnostic loops on the windows-2022 image.

After: the job installs libuv1=1.52.1-1, so configure gets through find_package(wxWidgets) and the build reaches the compile step, where #2464's gccpriv.h stand-in gets its first real test. The diagnostics are gone and the job runs on windows-latest again.

The cause is libuv 1.53.0. It switched process spawning from fork to posix_spawn, and with it cmake's execute_process() hangs at random on Cygwin. In the trace runs a loop of 40 sh -c true calls hung before the first one returned. Pinning the older cygwin (3.6.10) and cmake (4.4.3), or switching to windows-2022, didn't help. envmodules/modules#708 found the same cause and pins the same version. The 09-29 green run already had 1.53.0; since the hang is a race, that run was lucky.

How: libuv1=1.52.1-1 is added to cygwin-install-action's package list, with a comment saying to drop it once Cygwin ships a fixed libuv. The bash shell, the step timeouts and stdin from /dev/null from #2464 stay.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FZhWkXZVnRAtuLrPUvyxjx


Generated by Claude Code

libuv 1.53.0 spawns processes with posix_spawn instead of fork, and on
Cygwin that makes cmake's execute_process() hang at random: in a loop
of 40 "sh -c true" calls it hung before the first one returned.
Configure stopped inside find_package(wxWidgets), which runs wx-config
that way, until a timeout. Older cygwin and cmake packages and the
windows-2022 image all hung the same way; envmodules/modules#708 found
the libuv cause and pins 1.52.1-1 too.

Also removes the temporary diagnostic loops that came to main with
#2464 and goes back to windows-latest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZhWkXZVnRAtuLrPUvyxjx
@gunterkoenigsmann
gunterkoenigsmann merged commit b53ca0b into main Oct 6, 2026
@gunterkoenigsmann
gunterkoenigsmann deleted the claude/cygwin-pin-libuv branch October 6, 2026 18:17
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.

2 participants