Re: [PATCH] Cygwin: open: Add missing unlock on error

Johannes Schindelin <[email protected]>
Newsgroups gmane.os.cygwin.patches
Message-ID <[email protected]>
Hi Mark,

On Mon, 3 Aug 2026, Mark Geisert wrote:

> On 8/3/2026 12:36 PM, Johannes Schindelin wrote:
> > 
> > I independently reviewed this and reached the same conclusion: the fix
> > is correct and minimal. I see it already landed on master as
> > 0d3ea0ee653f (with Mark's Reviewed-by), so it's kind of a belated
> > review.
> > 
> > On Mon, 3 Aug 2026, Takashi Yano wrote:
> > 
> > > the commit 524d75ff7398 ("Cygwin: open: Unlock fdtab before open_
> > > with_arch()") introduced a bug that fdtab lock was not unlocked when
> > > new fd cannot be allocated due to an error.
> > 
> > Worth restating how much this matters, because the leaked lock is not
> > fd-table-local. The dtable lock acquires and releases
> > `lock_process::locker`, a process-wide recursive muto that also guards
> > `fork`, exec/spawn, `dup`, and every `open` and `close`. So the
> > pre-fix code let the owning thread hold it forever, turning a
> > transient out-of-descriptors failure (`EMFILE`) into a permanent,
> > process-wide deadlock. That is why it is a showstopper even though the
> > trigger is rare.
> 
> I've neglected to add a h/t to Johannes for his series of analyses that have
> proven to me that often there is much more going on within Cygwin than meets
> the eye.  These comments are invaluable, every one.
> Thank you Johannes very much!

Thank you!!!
Johannes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.