| delorie.com/archives/browse.cgi | search |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 67OAfW1n1543403 |
| Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
| Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 67OAfW1n1543403 |
| Authentication-Results: | delorie.com; |
| dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=hdt+bL44 | |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 4D0194BA2E24 |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
| s=default; t=1787568091; | |
| bh=ggkNFUmhL94wWs38R8dsTwZrC8F1Yw0/WvshIpgIK1g=; | |
| h=Date:To:Cc:Subject:In-Reply-To:References:List-Id: | |
| List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: | |
| From:Reply-To:From; | |
| b=hdt+bL44dhsqe9mrwBt5F+5PX0JUO13Xbfvu+hC5wtR7dNv/dBv6IZIsLGwUfovQv | |
| +XM3ppy+ri50gokWbPXWKaeucomT9RuZGtdlC3s+98X2Ktwld09p7XXHD6f81XcMBT | |
| wqubaZ91hhDpD4Tl6kJ5qlOMaX6h67iKFmmlYpNo= | |
| X-Original-To: | cygwin AT cygwin DOT com |
| Delivered-To: | cygwin AT cygwin DOT com |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org 09C2D4BA2E2F |
| ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org 09C2D4BA2E2F |
| ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787568059; cv=none; |
| b=xCzGH3H9neQWjcBT7DWm0GaXIpaloH6VAFCPpD7kGq1oNUHFPdqNqd5knid3gxKbxdzV+HFbFDwQLh1m9N+eT7SZ7GOsdi4QQPO7+fe73yZvufKCzvUDEmyNYw1tpLtKzAZwa9nzG8TlE8KL6YHiP1q5c0wgVVVp0IWyss08D6Y= | |
| ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
| t=1787568059; c=relaxed/simple; | |
| bh=KDkXssZPqQTIJw7yVKcF8Fz3xq//LA769VCyKuI/E8o=; | |
| h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature; | |
| b=Q4g+SGF7E2y7jkoon4HALeEZuVYyKtpiYeVYr2LG3rGg8iofr+zu9C20RN+n5Ytcuhwp0erw5WuZBjMZ7wcIqUb0S/qkuhU/iEmpBWYDN1G4u+aa3y/AsQSmq0Y+AmSQ/Acloua+NH41VlPnYK0tYnsIg8Uu0Hji8YDNnX/wd1g= | |
| ARC-Authentication-Results: | i=1; sourceware.org; |
| dkim=pass (2048-bit key, unprotected) | |
| header.d=nifty.ne.jp header.i=@nifty.ne.jp header.a=rsa-sha256 | |
| header.s=default-1th84yt82rvi header.b=YbwBczCH | |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 09C2D4BA2E2F |
| Date: | Mon, 24 Aug 2026 19:40:51 +0900 |
| To: | cygwin AT cygwin DOT com |
| Cc: | Nick Popoff <nick AT nickpopoff DOT net> |
| Subject: | Re: Regression in Cygwin 3.6.9: Deadlock when spawning many |
| concurrent Windows-native processes (nmake.exe) =?UTF-8?B?4oCU?= works in | |
| 3.6.5 1 | |
| Message-Id: | <20260824194051.e61e716cbdbe3a1c246fa51d@nifty.ne.jp> |
| In-Reply-To: | <000001dd33b2$6a4f2570$3eed7050$@nickpopoff.net> |
| References: | <000001dd33b2$6a4f2570$3eed7050$@nickpopoff.net> |
| X-Mailer: | Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) |
| Mime-Version: | 1.0 |
| X-BeenThere: | cygwin AT cygwin DOT com |
| X-Mailman-Version: | 2.1.30 |
| List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
| List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
| List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
| List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
| From: | Takashi Yano via Cygwin <cygwin AT cygwin DOT com> |
| Reply-To: | Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> |
| Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com |
| Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
| X-MIME-Autoconverted: | from base64 to 8bit by delorie.com id 67OAfW1n1543403 |
Thanks for the report.
I guess the patch:
https://cygwin.com/pipermail/cygwin-patches/2026q3/015286.html
fixes the issue. Please wait for test version of cygwin, where
the patch applied. The patch is now under review, so hopefully
it will become soon.
On Mon, 24 Aug 2026 06:22:06 -0400
Nick Popoff via Cygwin <cygwin AT cygwin DOT com> wrote:
> Hello,
>
>
>
> Regression in Cygwin 3.6.9: Deadlock when spawning many concurrent Windows-native processes (nmake.exe) — works in 3.6.5‑1
>
> Version affected: Cygwin 3.6.9 (latest as of August 2026)
>
> Version NOT affected: Cygwin 3.6.5‑1 (stable, no issues)
>
>
>
> Summary
>
> Cygwin 3.6.9 introduces a regression in process management that causes complete build deadlock when spawning many concurrent Windows-native processes (specifically nmake.exe). The same workload has run flawlessly for 20+ years on all previous Cygwin versions, including 3.6.5‑1. Under 3.6.9, the build freezes once some parallel job limit is reached, leaving dozens of idle sh.exe processes and stalled nmake.exe processes. Ctrl‑C kills the Windows nmake.exe processes but Cygwin’s sh.exe instances remain stuck, and the terminal never returns control. Reverting to 3.6.5‑1 immediately restores correct behavior. This is a reproducible regression in Cygwin’s process/signal/pipe handling.
>
>
>
> Environment
>
> * Windows Server 2025 (WS2025)
> * Heavy parallel build workload
> * 15 concurrent nmake.exe processes
> * Each nmake.exe spawns many short-lived Windows-native tools
> * Cygwin shell (sh.exe) orchestrates the build
> * No Cygwin-native processes involved — all Windows-native
>
>
>
> Steps to Reproduce
>
> 1. Install Cygwin 3.6.9
> 2. Launch a Cygwin shell
> 3. Start 15 parallel Windows-native builds, e.g.:
>
> Code
>
> for i in {1..15}; do
>
> (nmake.exe -f Makefile$i &)
>
> done
>
> wait
>
> Each makefile repeatedly spawns short-lived Windows-native tools (ASN.1-compiler processes).
>
> 4. Observe behavior once all 15 jobs are active.
>
>
>
> Actual Behavior (3.6.9)
>
> * Build freezes completely once a certain parallel limit is reached
> * All nmake.exe processes become idle
> * Dozens of idle sh.exe accumulate
> * No CPU usage
> * No progress
> * Ctrl‑C kills nmake.exe but does not kill sh.exe
> * Cygwin console never returns
> * Terminal must be forcibly closed
> * No such behavior in 3.6.5‑1
>
> This is consistent with a signal-thread or pipe inheritance deadlock.
>
>
>
> Expected Behavior (3.6.5‑1 and earlier)
>
> * All 15 parallel nmake.exe processes run normally
> * No idle sh.exe accumulation
> * No deadlock
> * Ctrl‑C cleanly terminates all processes
> * Console returns immediately
> * Build completes successfully
>
> This behavior has been stable for decades.
>
>
>
> Notes
>
> This workload is a strong stress test for:
>
> * spawn.cc
> * sigproc.cc
> * pipe inheritance
> * process table updates
> * console control handling
> * synchronization primitives
>
> The regression appears only in 3.6.9.
>
>
>
> Conclusion
>
> Cygwin 3.6.9 introduces a reproducible deadlock when orchestrating many concurrent Windows-native processes via Cygwin’s shell. This is a regression from 3.6.5‑1. The issue affects real-world build systems and should be investigated.
>
> I can provide:
>
> * process snapshots
> * strace logs
> * Windows process tree dumps
> * minimal reproduction scripts
>
> upon request.
>
>
>
> Nick
>
>
>
>
>
>
>
>
> --
> Problem reports: https://cygwin.com/problems.html
> FAQ: https://cygwin.com/faq/
> Documentation: https://cygwin.com/docs.html
> Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
--
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
| webmaster | delorie software privacy |
| Copyright © 2026 by DJ Delorie | Updated Sep 20 2026 |