DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 5BSJrcvA3031149
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 5BSJrcvA3031149
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=NGlSN3DL
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 81CFB4BAD162
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1766951617;
	bh=Kk2AL134I4OOFZBdUiV3+AJTgsnzn/4QT6/PxbKBC2g=;
	h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=NGlSN3DLaTwGmACER2O6br9xk5THS5pqHc1plcuM3sjfl7fJrbg+ZTRHO6SDauqIW
	 Kcw3p+EgSbVCc09Y1Czv6EimmVLabdK76x48FPiFnORO9jKvzDxbaCR7cG6i/71zSJ
	 nHwz8ile97mgYkHAFiJIhZ+E6wyecElGmopT3YYw=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DB6284BAE7D2
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DB6284BAE7D2
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1766951569; cv=none;
 b=fW44oWb/nWYMIvNasG7Z60OLtFEl5Azzfrs60RIfdwQ0SE+Taq3w0jyLagnWBp3hzzgDRsGE2/6JPNvDwtspPHPMO4nEL5nW2XUfao1nhoCNC2j/uzj+zdmUUEYYvlyPG8KvVMM/6i7Ge8XXh1lqgF42EDLce6nnn3tyWURJPjg=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1766951569; c=relaxed/simple;
 bh=+VbbxbBdF153mqJ4Y/UgjbVyGIXPsWigahoa0oEN880=;
 h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
 b=dDAPr8fuAyPx41qFHedT04pHObF1MlJgCyJNHG19nf5nubwh25nwz/MONlSuJbfzzllyDPanY70A+AeCN9zql9ERnHPxSnGjzeL13BFAJEwA0QMRULkXeInR+zr9VG9FwHTrHl+BtN5/5rI17Ifp6iRxNMA603b1H2QTHn+ahUY=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB6284BAE7D2
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1766951568; x=1767556368;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=+VbbxbBdF153mqJ4Y/UgjbVyGIXPsWigahoa0oEN880=;
 b=khOsgPKwIz4Rjo9MX2YcS59n5OFriAUMZKx7/DBiSDNQySLaFxJZUTeBMc3Rbr17C5
 CNSm4c7Y6lzwb9n8zJwZ8Nja5vX0HWlCS4GXbhQprQM/Li2UK5EkN5KRglzf4L+CSZCE
 X+PRtL7fDt/jv9o2OnYh5skJBc9hfJQirqcoSg0jcumRCqsGeQrNKe7fc1K7IpE9E5CA
 k5iWIaeiqcV32ULofrQRzz/jDtPF4BCVfzeI00sBuKy3x/CmS/Tc2OnL2DabWyVnAFmC
 7ysxeD1x35lVbDYsr5S0TCLBgxFm/bTMyotPZgfl2KZ8B2iC8Ptzhq+ZKxCWjiMVk1bv
 BioA==
X-Forwarded-Encrypted: i=1;
 AJvYcCX/vb2BEpOd7283xsrc9CChwi5NntmARCGKvfvGh7/146mxE3ltNmhMgpc67yZQ4CdLh2rFknU=@cygwin.com
X-Gm-Message-State: AOJu0Ywpj7aco2dM2IUtRG+UgX4HooCaLR9hzteoO8IYdKvkmtmTONvp
 InC4mC8oaISWdblFq4dq/q98baPMg0DOsMQMJ7j421rpM44XpSQXlyV4ecQYPt9uRBF52+RhdWu
 HaT7lk+X3gO1RvuA6Z112ept7WUJHhw==
X-Gm-Gg: AY/fxX4bQrTIZDK9jmoXjfN0CEAg1Qt9oqHJ+7FU6oDr03Wd+MB6QfvYIPKfky+mLrF
 WiyaH8tvKntJyD9AX4umTdVCtypawWDxpN6zX5m0PxzhCcwAQyn6+gktfKEyAsbI7RLV9tDyiPO
 DtlQ0h1FEeFqHMJNuKCGbCL4L/UwTbXGWv29MDkRD9UXF/mpUKtdpPfVh6wK3kJcqc/Yud/4GBh
 TMfPsN5j9Hix5OiPZ9ZtSzN7hwvlhNNKmaqEc0cbm4jc7i9oWNcf8qFnntdMxGEzU/aimPnEAtA
 XQxW+yAg1IsoI+n0my+nY5Vh0uLZoNN3vNCc
X-Google-Smtp-Source: AGHT+IFCx2B7rpDOsZ+ioP+OfDGaborDKc5lRlseLCqejurLK0c+xJBGbZVTuWn0FEZ2hmlUKFup2pDO96/iliIk6Os=
X-Received: by 2002:a05:690e:11c2:b0:640:fbf3:5f9a with SMTP id
 956f58d0204a3-6466a8ba485mr20162200d50.5.1766951568076; Sun, 28 Dec 2025
 11:52:48 -0800 (PST)
MIME-Version: 1.0
References: <CA+1R0Vg7b7YyvgDf1=or8oxskEX4BJwMJQxxTKYaUHWPQeD9iQ@mail.gmail.com>
In-Reply-To: <CA+1R0Vg7b7YyvgDf1=or8oxskEX4BJwMJQxxTKYaUHWPQeD9iQ@mail.gmail.com>
Date: Sun, 28 Dec 2025 11:52:36 -0800
X-Gm-Features: AQt7F2qt5ubFa4zvfMsTzLAIiszbhOgPxTYQe1UU3KzP-1w_GLxOqke8vJpii-s
Message-ID: <CA+1R0Vju3VQYaz-s00vCroEV3pH7vBeUhoMGqtUxi0x5k56vpQ@mail.gmail.com>
Subject: Re: flock deadlock
To: Takashi Yano <takashi.yano@nifty.ne.jp>, cygwin@cygwin.com
Content-Type: multipart/mixed; boundary="0000000000008d25320647087858"
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Nahor via Cygwin <cygwin@cygwin.com>
Reply-To: Nahor <nahor.j+cygwin@gmail.com>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>

--0000000000008d25320647087858
Content-Type: text/plain; charset="UTF-8"

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.

Regards,
Nahor.

--0000000000008d25320647087858
Content-Type: text/plain; charset="US-ASCII"; name="main.c"
Content-Disposition: attachment; filename="main.c"
Content-Transfer-Encoding: base64
Content-ID: <f_mjq4paap0>
X-Attachment-Id: f_mjq4paap0

Ly8gI2RlZmluZSBTTEVFUAoKI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2luY2x1ZGUgPGFzc2VydC5o
PgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcu
aD4KI2luY2x1ZGUgPHN5cy9maWxlLmg+CiNpbmNsdWRlIDxzeXMvd2FpdC5oPgojaW5jbHVkZSA8
dGltZS5oPgojaW5jbHVkZSA8dW5pc3RkLmg+Cgpjb25zdCBpbnQgRk9SS19DT1VOVCA9IDEwOwoK
dHlwZWRlZiBzdHJ1Y3QgewogIGludCBpZDsKfSBjYWxsX2FyZ3M7CgpzdGF0aWMgdm9pZCAqZmxv
Y2tfY2FsbCh2b2lkICphcmcpIHsKICBjYWxsX2FyZ3MgKmFyZ3MgPSAoY2FsbF9hcmdzICopYXJn
OwoKI2lmZGVmIFNMRUVQCiAgaWYgKGFyZ3MtPmlkICE9IC0xKSB7CiAgICBzdHJ1Y3QgdGltZXNw
ZWMgZHVyYXRpb247CiAgICBkdXJhdGlvbi50dl9zZWMgPSAwOwogICAgZHVyYXRpb24udHZfbnNl
YyA9IDE7CiAgICBuYW5vc2xlZXAoJmR1cmF0aW9uLCBOVUxMKTsKICB9CiNlbmRpZgoKICAvLyBv
cGVuIGFuZCBsb2NrIGRpcgogIGludCBkaXJfZmQgPSBvcGVuKCIvY3lnZHJpdmUvYy9jeWd3aW42
NC9ldGMiLCBPX1JET05MWSwgMCk7CiAgaWYgKGRpcl9mZCA8IDApIHsKICAgIHByaW50Zigib3Bl
biBkaXIgZXJyb3I6ICVkIC0gJXNcbiIsIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwogIH0KICBh
c3NlcnQoZGlyX2ZkID49IDApOwoKICAvLyBsb2NrCiAgaW50IGxvY2tfcmVzID0gZmxvY2soZGly
X2ZkLCBMT0NLX1NIKTsKICBpZiAobG9ja19yZXMgIT0gMCkgewogICAgcHJpbnRmKCJsb2NrIGVy
cm9yOiAlZCAtICVzXG4iLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKTsKICB9CiAgYXNzZXJ0KGxv
Y2tfcmVzID09IDApOwoKICAvLyBjbG9zZQogIGFzc2VydChjbG9zZShkaXJfZmQpID09IDApOwoK
ICBwcmludGYoImRvbmVbJWldXG4iLCBhcmdzLT5pZCk7CiAgcmV0dXJuIE5VTEw7Cn0KCmludCBt
YWluKCkgewogIGNhbGxfYXJncyBtYWluX2FyZ3M7CiAgbWFpbl9hcmdzLmlkID0gLTE7CgogIC8v
IHNwYXduIGNoaWxkcmVuCiAgcGlkX3QgY2hpbGRyZW5bRk9SS19DT1VOVF07CiAgZm9yIChpbnQg
aSA9IDA7IGkgPCBGT1JLX0NPVU5UOyArK2kpIHsKICAgIGNhbGxfYXJncyBhcmdzOwogICAgYXJn
cy5pZCA9IGk7CgogICAgY2hpbGRyZW5baV0gPSBmb3JrKCk7CiAgICBpZiAoY2hpbGRyZW5baV0g
PT0gLTEpIHsKICAgICAgcGVycm9yKCJmb3JrIik7CiAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsK
ICAgIH0KICAgIGlmIChjaGlsZHJlbltpXSA9PSAwKSB7CiAgICAgIGZsb2NrX2NhbGwoJmFyZ3Mp
OwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIGZsb2NrX2NhbGwoJm1haW5fYXJncyk7CiAgfQoK
ICAvLyB3YWl0IGNoaWxkcmVuCiAgZm9yIChpbnQgaSA9IDA7IGkgPCBGT1JLX0NPVU5UOyArK2kp
IHsKICAgIGludCB3c3RhdHVzOwogICAgcGlkX3QgdzsKICAgIGRvIHsKICAgICAgdyA9IHdhaXRw
aWQoY2hpbGRyZW5baV0sICZ3c3RhdHVzLCBXVU5UUkFDRUQgfCBXQ09OVElOVUVEKTsKICAgICAg
aWYgKHcgPT0gLTEpIHsKICAgICAgICBwZXJyb3IoIndhaXRwaWQiKTsKICAgICAgICBleGl0KEVY
SVRfRkFJTFVSRSk7CiAgICAgIH0KICAgIH0gd2hpbGUgKCFXSUZFWElURUQod3N0YXR1cykgJiYg
IVdJRlNJR05BTEVEKHdzdGF0dXMpKTsKICB9CgogIHByaW50ZigiZG9uZVttYWluXVxuIik7CiAg
cmV0dXJuIDA7Cn0K
--0000000000008d25320647087858
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

--0000000000008d25320647087858--
