delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/01/03/09:05:43

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 603E5f8D2832074
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 603E5f8D2832074
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=EBjnfAuq
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A7C684BA2E20
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1767449140;
bh=Kh+YcFe2yxv+qdUFZhB1HOKsJi5gdb8wuF0sFQMAsFA=;
h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=EBjnfAuqUG0B+rQ7M6LVqLZ6UgaCz8J2x7zpkt+XOXbGK2bRwYwGR183Mx9UQnA1j
fiJzMktKG5YGFGDVsYhCBDc3VlpRYvTuSPyEr1HPek0TBjaPlIcwVJckpdi4w26df8
UAmZ0g8BEG8brcf78Qubgqz842S/aJBq085flbgk=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5B57F4BA2E05
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5B57F4BA2E05
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1767449116; cv=none;
b=XJmLXLa/GUBiDzLeJ3TpXLpu2PxFsA6MUyk99ZKF+Vfi5oMNgKgC5azU1l7IUBFd7TdJc4KDcEALiCV5TJlrWevIXj6IDuD3qWzAyWLVLvK2OeOFYw2VsNRPfoAOytJn43XINEQURhYMrMuQ2U1/19eyeNCQVTmU2w+IVNDHNig=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1767449116; c=relaxed/simple;
bh=oPLWsmJrJdfN+Q7u1EOwkHdII+xrriLquLeE/KUj20k=;
h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature;
b=mOntx8MjdlvgY1JeYvPQmfQoYA2r2eN/06qy1SZ5rxWQpZ0g8eUVcLQf8DRJRg71PT/zUM7XzdgkmdlFyZ9K3ZQvHWgLVPxy86h1OYwN1NsCdjlKxvE5CMV1+zhxjCLBaE4WV0Q9lZ45Rh9BRBpy04p1/dtP86ACc7sXHdVfIO8=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5B57F4BA2E05
Date: Sat, 3 Jan 2026 23:05:11 +0900
To: cygwin AT cygwin DOT com, cygwin-patches AT cygwin DOT com
Subject: Re: flock deadlock
Message-Id: <20260103230511.24a6f772323927a141bf595f@nifty.ne.jp>
In-Reply-To: <CA+1R0Vju3VQYaz-s00vCroEV3pH7vBeUhoMGqtUxi0x5k56vpQ@mail.gmail.com>
References: <CA+1R0Vg7b7YyvgDf1=or8oxskEX4BJwMJQxxTKYaUHWPQeD9iQ AT mail DOT gmail DOT com>
<CA+1R0Vju3VQYaz-s00vCroEV3pH7vBeUhoMGqtUxi0x5k56vpQ AT mail DOT gmail DOT com>
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>

This is a multi-part message in MIME format.

--Multipart=_Sat__3_Jan_2026_23_05_11_+0900_mt=kfKvTBxH72A=I
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Sun, 28 Dec 2025 11:52:36 -0800
Nahor <nahor.j+cygwin AT gmail DOT com> wrote:
> Attached is a reproducible example.
> The example just calls `fork()` then open/flock/close a directory and
> repeats (fork/open/flock/close). The forks optionally sleep then
> open/flock/close the same directory and exit.
> 
> There is no issue if either the parent or the children don't call `flock()`.
> Without sleeping, the example deadlocks immediately on my system 100%
> of the time. Killing the child allow the parent to proceed, fork the
> next child, which triggers the next deadlock.
> When sleeping, _sometimes_ one child will deadlock with the parent.
> Killing that child allows the parent and remaining children to proceed
> (and potentially trigger another deadlock). Killing the parent also
> unblocks all the children.

Thanks for the report and the test case.
I looked into the issue and found the cause. I also confirmed that
the patch attached solves the issue.

Could anyone please review the patch?

-- 
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>

--Multipart=_Sat__3_Jan_2026_23_05_11_+0900_mt=kfKvTBxH72A=I
Content-Type: text/plain;
 name="0001-Cygwin-close-Do-not-lock-fdtab.patch"
Content-Disposition: attachment;
 filename="0001-Cygwin-close-Do-not-lock-fdtab.patch"
Content-Transfer-Encoding: base64

RnJvbSA1YjBhM2ZhYzhjNmY0ZjU2NjI2ZDEwOGEyZGZhOTczOGY3M2VjZjZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQ0KRnJvbTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUu
anA+DQpEYXRlOiBTYXQsIDMgSmFuIDIwMjYgMjE6NTM6MzYgKzA5MDANClN1YmplY3Q6IFtQQVRD
SF0gQ3lnd2luOiBjbG9zZTogRG8gbm90IGxvY2sgZmR0YWINCg0KT3RoZXJ3aXNlLCBhIGRlYWRs
b2NrIGNhbiBvY2N1ciBpZiB0aGUgY2hpbGQgcHJvY2VzcyBhdHRlbXB0cyB0bw0KbG9jayBhIGZp
bGUgd2hpbGUgdGhlIHBhcmVudCBwcm9jZXNzIGlzIGNsb3NpbmcgdGhlIHNhbWUgZmlsZSwgd2hp
Y2gNCmlzIGFscmVhZHkgbG9ja2VkLiBUaGUgZGVhZGxvY2sgbWVjaGFuaXNtIGlzIGFzIGZvbGxv
d3MuDQoNCldoZW4gdGhlIGNoaWxkIHByb2Nlc3MgYXR0ZW1wdHMgdG8gbG9jayBhIGZpbGUsIGl0
IG5vdGlmaWVzIHRoZSBwYXJlbnQNCnByb2Nlc3MgYnkgY2FsbGluZyBDcmVhdGVSZW1vdGVUaHJl
YWQoKSwgd2hpY2ggY3JlYXRlcyBhIHJlbW90ZSB0aHJlYWQNCmluIHRoZSBwYXJlbnQuIFRoYXQg
dGhyZWFkIGNoZWNrcyB3aGV0aGVyIHRoZSBmaWxlIGJlaW5nIGxvY2tlZCBpcw0KY3VycmVudGx5
IG9wZW5lZCBpbiB0aGUgcGFyZW50LiBEdXJpbmcgdGhlIG9wZXJhdGlvbiwgY3lnaGVhcC0+ZmR0
YWINCmlzIHRlbXBvcmFyaWx5IGxvY2tlZCBpbiBvcmRlciB0byBlbnVtZXJhdGUgdGhlIGZpbGUg
ZGVzY3JpcHRvcnMuDQoNCkhvd2V2ZXIsIGlmIHRoZSBwYXJlbnQgcHJvY2VzcyBpcyBjbG9zaW5n
IHRoZSBzYW1lIGZpbGUgYXQgdGhhdCBtb21lbnQsDQppdCBhbHNvIGxvY2tzIGZkdGFiIHZpYSBj
eWdoZWFwX2ZkZ2V0IGNmZChmZCwgdHJ1ZSkgaW4gX19jbG9zZSgpLg0KSWYgdGhlIHBhcmVudCBh
Y3F1aXJlcyB0aCBmZHRhYiBsb2NrIGZpcnN0LCBpdCBwcm9jZWVkcyB0byBjYWxsDQpkZWxfbXlf
bG9ja3MoKSwgd2hpY2ggYXR0ZW1wdHMgdG8gbG9jayB0aGUgaW5vZGUgaW4gaW5vZGVfdDpnZXQo
KS4NCg0KQXQgdGhpcyBwb2ludCwgdGhlIGlub2RlIGlzIGFscmVhZHkgbG9ja2VkIGluIHRoZSBj
aGlsZCwNCnNvIHRoZSBwYXJlbnQgd2FpdHMgZm9yIHRoZSBjaGlsZCB0byByZWxlYXNlIHRoZSBp
bm9kZS4gTWVhbndoaWxlLA0KdGhlIGNoaWxkIGlzIHdhaXRpbmcgdG8gYWNxdWlyZSB0aGUgZmR0
YWIgbG9jaywgd2hpY2ggaXMgc3RpbGwgaGVsZA0KYnkgdGhlIHBhcmVudC4gQXMgYSByZXN1bHQs
IHRoZSBwYXJlbnQgYW5kIGNoaWxkIGJlY29tZSBkZWFkbG9ja2VkLg0KDQpIb3dldmVyLCBzaW5j
ZSBjbG9zZV9hbGxfZmlsZXMoKSBhbmQgY2xvc2VfcmFuZ2UoKSBkbyBub3QgbG9jayBmZHRhYiwN
Cml0IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGZvciBfX2Nsb3NlKCkgdG8gbG9jayBmZHRhYiBl
aXRoZXIuDQoNClRoaXMgcGF0Y2ggcmVtb3ZlcyBmZHRhYiBsb2NrIGluIF9fY2xvc2UoKSB0byBy
ZXNvbHZlIHRoZSBpc3N1ZS4NCg0KQWRkcmVzc2VzOiBodHRwczovL2N5Z3dpbi5jb20vcGlwZXJt
YWlsL2N5Z3dpbi8yMDI1LURlY2VtYmVyLzI1OTE4Ny5odG1sDQpGaXhlczogZGY2M2JkNDkwYTUy
ICgiKiBjeWdoZWFwLmggKGN5Z2hlYXBfZmRtYW5pcCk6IE5ldyBjbGFzczogc2ltcGxpZmllcyBs
b2NraW5nIGFuZCByZXRyaWV2YWwgb2YgZmRzIGZyb20gY3lnaGVhcC0+ZmR0YWIuIikNClJlcG9y
dGVkLWJ5OiBOYWhvciA8bmFob3IuaitjeWd3aW5AZ21haWwuY29tPg0KUmV2aWV3ZWQtYnk6DQpT
aWduZWQtb2ZmLWJ5OiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5qcD4NCi0t
LQ0KIHdpbnN1cC9jeWd3aW4vc3lzY2FsbHMuY2MgfCAyICstDQogMSBmaWxlIGNoYW5nZWQsIDEg
aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQoNCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2lu
L3N5c2NhbGxzLmNjIGIvd2luc3VwL2N5Z3dpbi9zeXNjYWxscy5jYw0KaW5kZXggMWIxZmYxN2Iw
Li43NTI4N2Y3MmEgMTAwNjQ0DQotLS0gYS93aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjDQorKysg
Yi93aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjDQpAQCAtMTcwMiw3ICsxNzAyLDcgQEAgX19jbG9z
ZSAoaW50IGZkLCBpbnQgZmxhZykNCiANCiAgIHB0aHJlYWRfdGVzdGNhbmNlbCAoKTsNCiANCi0g
IGN5Z2hlYXBfZmRnZXQgY2ZkIChmZCwgdHJ1ZSk7DQorICBjeWdoZWFwX2ZkZ2V0IGNmZCAoZmQp
Ow0KICAgaWYgKGNmZCA8IDApDQogICAgIHJlcyA9IC0xOw0KICAgZWxzZQ0KLS0gDQoyLjUxLjAN
Cg0K

--Multipart=_Sat__3_Jan_2026_23_05_11_+0900_mt=kfKvTBxH72A=I
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


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

--Multipart=_Sat__3_Jan_2026_23_05_11_+0900_mt=kfKvTBxH72A=I--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019