delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2024/11/23/06:53:46

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 4ANBrjoo782075
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 4ANBrjoo782075
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=cWDQwjYq
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6CCFC3858D37
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1732362823;
bh=giWJT2oyUoNfSRL9rpG579RiNqhq1fHW9keHT040JNA=;
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=cWDQwjYqufCgFH1Vgq/v+HL41nGcb3R9fL3MMJKntg7mxyQY7GA913rN4E9Qo5mZ+
8EMOQRuYPpRs+Yba8HRtkEATxQ7duz+hIPzTX+wo+cxdCy9fO0xezr0hD0sRw4Uw/p
DdEfRug8Z4Qn4B3Q2n+K7S/5sLqdgNxnuOT8o/D8=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CA3963858CDB
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CA3963858CDB
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732362792; cv=none;
b=ezK7jG++KVDqQJ21Y5h7OyNjG/2glWE1RwBsFmCoXYDcDNGWCZ7JJv6pj03sB+hlzXPnECvu12qsj75cBAVRBIzhNptx3GYmCJv6NfuIFLHC/jbvXnG8K3XnDk+lDuz1OMRyBP6MOo7gfVRdWrpG71K+vc7KL8GyxoJwqSeiRfQ=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1732362792; c=relaxed/simple;
bh=JaLa4Eq7jZ65qzNrAyXsofPJiYLk1HvOSF9zTp5UUCE=;
h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature;
b=qyi9zqW97eK+dG9Hid9l3I0zqhqg4JNEx2gtfaeOCBmPIn3cam80ASy6RnMIR+GHAri7uoyvyPkz/12b62/7DrG6dhpTHGHvcnyGo5ynbmF/Jwev2S+Y/JUD80AwB4xRiyidziCWqTHN8rLfEuhs7jsPeYKH4kCvANkNjfdz1XM=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CA3963858CDB
Date: Sat, 23 Nov 2024 20:53:07 +0900
To: cygwin AT cygwin DOT com
Subject: Re: SIGKILL may no longer work after many SIGCONT/SIGSTOP signals
Message-Id: <20241123205307.80e08e9669cd3e1ee72043a1@nifty.ne.jp>
In-Reply-To: <20241120224308.000a18e48c0b8926e82e5147@nifty.ne.jp>
References: <adc78776-84f6-82bc-13b4-3a51b11027fa AT t-online DOT de>
<20241119182152 DOT c2195f50ed7091fbed644606 AT nifty DOT ne DOT jp>
<20241120224308 DOT 000a18e48c0b8926e82e5147 AT nifty DOT ne DOT jp>
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__23_Nov_2024_20_53_07_+0900_QBl.I3+A=Ys5UQSQ
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Wed, 20 Nov 2024 22:43:08 +0900
Takashi Yano wrote:
> On Tue, 19 Nov 2024 18:21:52 +0900
> Takashi Yano wrote:
> > On Tue, 12 Nov 2024 10:53:58 +0100
> > Christian Franke wrote:
> > > Found with 'stress-ng --cpu-sched' from current stress-ng upstream HEAD:
> > > 
> > > Testcase (attached):
> > > 
> > > $ gcc -O2 -o manysignals manysignals.c
> > > 
> > > $ ./manysignals
> > > fork() = 1833
> > > ...
> > > fork() = 1848
> > > ...
> > > kill(1833, 17)
> > > ...
> > > kill(1848, 17)
> > > kill(1833, 9)
> > > ...
> > > kill(1848, 9)
> > > waitpid(1833, ., 0)
> > > 
> > > 
> > > Run this in second terminal:
> > > 
> > > $ watch "ps | sed -n '1p;/manysignals/{/sed/d;p}'"
> > > 
> > > If 'S' appear in the first column, the child processes likely reached 
> > > the final SIGSTOP state. This takes some time. The parent process may 
> > > still hang in first waitpid() but should not.
> > > 
> > > If the parent process is aborted with ^C, child processes may be stopped 
> > > or left behind. Occasionally a child process that can not be stopped by 
> > > Cygwin (kill -9) is left behind.
> > > 
> > > Tested with ancient (i7-2600K) and more recent (i7-14700K) CPU :-)
> > > 
> > > 
> > > Unrelated to the above, but related to 'stress-ng --cpu-sched' which 
> > > uses sched_get/setscheduler():
> > > 
> > > - sched_getscheduler() always returns SCHED_FIFO. As far as I understand 
> > > Linux sched(7), this is a non-preemptive real-time policy. The 
> > > preemptive SCHED_RR would possibly a more reasonable value. 
> > > Unfortunately SCHED_OTHER cannot be used because it would require to 
> > > ignore the priority.
> > > 
> > > - sched_setscheduler() always fails with ENOSYS. It IMO should allow to 
> > > set 'param->sched_priority' if 'policy' is equal to the value returned 
> > > by sched_getscheduler().
> > 
> > Thanks for the report and the test case. I'm now looking into
> > the issue. Please wait a while.
> 
> Hopefully, I have found the cause.
> 
> The deadlock happens between main thread and wait_sig thread.
> The main thread is waiting for the wait_sig thread triggering
> wakeup event while the wait_sig thread is waiting previous
> signal being processed by main thread.
> 
> Let me consider how to fix that.

I'd like to report my progress for this issue.

The patch attached almost solves the problem. However, your test
case is paused for tens of seconds, then ends normally.

If the code:
      cpu_set_t cpus; CPU_ZERO(&cpus);
      CPU_SET(0, &cpus);
      if (sched_setaffinity(getpid(), sizeof(cpus), &cpus))
        perror("setaffinity");

      for (;;)
        sched_yield();
is changed to just:
      for (;;) sleep(1);
the test case runs without pause.

I think there still is a bug in the signal handling.

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

--Multipart=_Sat__23_Nov_2024_20_53_07_+0900_QBl.I3+A=Ys5UQSQ
Content-Type: application/octet-stream;
 name="signal202411232024.patch"
Content-Disposition: attachment;
 filename="signal202411232024.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZXhjZXB0aW9ucy5jYyBiL3dpbnN1cC9jeWd3aW4v
ZXhjZXB0aW9ucy5jYwppbmRleCA2MGMxZjU5NGYuLjAzZTYzZGJiZSAxMDA2NDQKLS0tIGEvd2lu
c3VwL2N5Z3dpbi9leGNlcHRpb25zLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vZXhjZXB0aW9ucy5j
YwpAQCAtMTQxOSw3ICsxNDE5LDcgQEAgYXBpX2ZhdGFsX2RlYnVnICgpCiAKIC8qIEF0dGVtcHQg
dG8gY2FyZWZ1bGx5IGhhbmRsZSBTSUdDT05UIHdoZW4gd2UgYXJlIHN0b3BwZWQuICovCiB2b2lk
Ci1fY3lndGxzOjpoYW5kbGVfU0lHQ09OVCAoKQorX2N5Z3Rsczo6aGFuZGxlX1NJR0NPTlQgKHRo
cmVhZGxpc3RfdCAqICZ0bF9lbnRyeSkKIHsKICAgaWYgKE5PVFNUQVRFIChteXNlbGYsIFBJRF9T
VE9QUEVEKSkKICAgICByZXR1cm47CkBAIC0xNDM0LDcgKzE0MzQsMTEgQEAgX2N5Z3Rsczo6aGFu
ZGxlX1NJR0NPTlQgKCkKICAgd2hpbGUgKDEpCiAgICAgaWYgKHNpZykJCS8qIEFzc3VtZSB0aGF0
IGl0J3Mgb2sgdG8ganVzdCB0ZXN0IHNpZyBvdXRzaWRlIG9mIGEKIAkJCSAgIGxvY2sgc2luY2Ug
c2V0dXBfaGFuZGxlciBkb2VzIGl0IHRoaXMgd2F5LiAgKi8KLSAgICAgIHlpZWxkICgpOwkJLyog
QXR0ZW1wdCB0byBzY2hlZHVsZSBhbm90aGVyIHRocmVhZC4gICovCisgICAgICB7CisJY3lnaGVh
cC0+dW5sb2NrX3RscyAodGxfZW50cnkpOyAvKiBVbmxvY2sgZm9yIG90aGVyIHRocmVhZHMgKi8K
Kwl5aWVsZCAoKTsJLyogQXR0ZW1wdCB0byBzY2hlZHVsZSBhbm90aGVyIHRocmVhZC4gICovCisJ
dGxfZW50cnkgPSBjeWdoZWFwLT5maW5kX3RscyAoX21haW5fdGxzKTsKKyAgICAgIH0KICAgICBl
bHNlIGlmIChzaWdzZW50KQogICAgICAgYnJlYWs7CQkvKiBTSUdDT05UIGhhcyBiZWVuIHJlY29n
bml6ZWQgYnkgb3RoZXIgdGhyZWFkICovCiAgICAgZWxzZQpAQCAtMTQ3MywxMCArMTQ3Nyw0NCBA
QCBzaWdwYWNrZXQ6OnByb2Nlc3MgKCkKIAogICBteXNlbGYtPnJ1c2FnZV9zZWxmLnJ1X25zaWdu
YWxzKys7CiAKKyAgLyogV2FpdCB1bnRpbCBhbm90aGVyIHNpZ25hbCBpcyBjb21wbGV0ZS4gKi8K
KyAgRFdPUkQgdDA7CisgIHQwID0gR2V0VGlja0NvdW50ICgpOworICB0bF9lbnRyeSA9IGN5Z2hl
YXAtPmZpbmRfdGxzIChfbWFpbl90bHMpOworICBfbWFpbl90bHMtPmxvY2sgKCk7CisgIHdoaWxl
IChfbWFpbl90bHMtPnNpZykKKyAgICB7CisgICAgICBpZiAoR2V0VGlja0NvdW50ICgpIC0gdDAg
PCAxMCkKKwl7CisJICBfbWFpbl90bHMtPnVubG9jayAoKTsKKwkgIGN5Z2hlYXAtPnVubG9ja190
bHMgKHRsX2VudHJ5KTsKKwkgIHlpZWxkKCk7CisJICB0bF9lbnRyeSA9IGN5Z2hlYXAtPmZpbmRf
dGxzIChfbWFpbl90bHMpOworCSAgX21haW5fdGxzLT5sb2NrICgpOworCX0KKyAgICAgIGVsc2Ug
aWYgKCFJc0V2ZW50U2lnbmFsbGVkIChfbWFpbl90bHMtPmdldF9zaWduYWxfYXJyaXZlZCAoKSkp
CisJeworCSAgZGVidWdfcHJpbnRmKCJzaWcgPSAlZCwgICIKKwkJICAgICAgICJidXQgc2lnbmFs
X2Fycml2ZWQgaXMgbm90IHJhaXNlZC4gV2h5PyBNYXliZSBhIGJ1Zz8iLAorCQkgICAgICAgX21h
aW5fdGxzLT5zaWcpOworCSAgX21haW5fdGxzLT5zZXRfc2lnbmFsX2Fycml2ZWQgKCk7IC8qICEh
IEV4cGVyaW1lbnRhbCAhISAqLworCSAgdDAgPSBHZXRUaWNrQ291bnQgKCk7CisJfQorICAgICAg
ZWxzZQorCXsKKwkgIF9tYWluX3Rscy0+dW5sb2NrICgpOworCSAgY3lnaGVhcC0+dW5sb2NrX3Rs
cyAodGxfZW50cnkpOworCSAgcmMgPSAtMTsKKwkgIGdvdG8gZG9uZTsKKwl9CisgICAgfQorICBf
bWFpbl90bHMtPnVubG9jayAoKTsKKyAgY3lnaGVhcC0+dW5sb2NrX3RscyAodGxfZW50cnkpOwor
CiAgIGlmIChzaS5zaV9zaWdubyA9PSBTSUdDT05UKQogICAgIHsKICAgICAgIHRsX2VudHJ5ID0g
Y3lnaGVhcC0+ZmluZF90bHMgKF9tYWluX3Rscyk7Ci0gICAgICBfbWFpbl90bHMtPmhhbmRsZV9T
SUdDT05UICgpOworICAgICAgX21haW5fdGxzLT5oYW5kbGVfU0lHQ09OVCAodGxfZW50cnkpOwog
ICAgICAgY3lnaGVhcC0+dW5sb2NrX3RscyAodGxfZW50cnkpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvd2luc3VwL2N5Z3dpbi9sb2NhbF9pbmNsdWRlcy9jeWd0bHMuaCBiL3dpbnN1cC9jeWd3aW4v
bG9jYWxfaW5jbHVkZXMvY3lndGxzLmgKaW5kZXggZjY3ZTkxMzZjLi4wNjJlM2RlZmMgMTAwNjQ0
Ci0tLSBhL3dpbnN1cC9jeWd3aW4vbG9jYWxfaW5jbHVkZXMvY3lndGxzLmgKKysrIGIvd2luc3Vw
L2N5Z3dpbi9sb2NhbF9pbmNsdWRlcy9jeWd0bHMuaApAQCAtMTU3LDYgKzE1Nyw4IEBAIHR5cGVk
ZWYgc3RydWN0IHN0cnVjdF93YWl0cQogZXh0ZXJuICJDIiBpbnQgX19zamZhdWx0IChqbXBfYnVm
KTsKIGV4dGVybiAiQyIgaW50IF9fbGpmYXVsdCAoam1wX2J1ZiwgaW50KTsKIAorc3RydWN0IHRo
cmVhZGxpc3RfdDsKKwogdHlwZWRlZiB1aW50cHRyX3QgX190bHNzdGFja190OwogCiBjbGFzcyBf
Y3lndGxzCkBAIC0yNjIsNyArMjY0LDcgQEAgcHVibGljOiAvKiBEbyBOT1QgcmVtb3ZlIHRoaXMg
cHVibGljOiBsaW5lLCBpdCdzIGEgbWFya2VyIGZvciBnZW50bHNfb2Zmc2V0cy4gKi8KICAgewog
ICAgIHdpbGxfd2FpdF9mb3Jfc2lnbmFsID0gZmFsc2U7CiAgIH0KLSAgdm9pZCBoYW5kbGVfU0lH
Q09OVCAoKTsKKyAgdm9pZCBoYW5kbGVfU0lHQ09OVCAodGhyZWFkbGlzdF90ICogJik7CiAgIHN0
YXRpYyB2b2lkIGNsZWFudXBfZWFybHkoc3RydWN0IF9yZWVudCAqKTsKIHByaXZhdGU6CiAgIHZv
aWQgY2FsbDIgKERXT1JEICgqKSAodm9pZCAqLCB2b2lkICopLCB2b2lkICosIHZvaWQgKik7CmRp
ZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL3NpZ3Byb2MuY2MgYi93aW5zdXAvY3lnd2luL3NpZ3By
b2MuY2MKaW5kZXggOWUyMGFlNmY3Li4yZGZmMDY2NDAgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3
aW4vc2lncHJvYy5jYworKysgYi93aW5zdXAvY3lnd2luL3NpZ3Byb2MuY2MKQEAgLTc2NCw3ICs3
NjQsNyBAQCBzaWdfc2VuZCAoX3BpbmZvICpwLCBzaWdpbmZvX3QmIHNpLCBfY3lndGxzICp0bHMp
CiAgIGlmICh3YWl0X2Zvcl9jb21wbGV0aW9uKQogICAgIHsKICAgICAgIHNpZ3Byb2NfcHJpbnRm
ICgiV2FpdGluZyBmb3IgcGFjay53YWtldXAgJXAiLCBwYWNrLndha2V1cCk7Ci0gICAgICByYyA9
IFdhaXRGb3JTaW5nbGVPYmplY3QgKHBhY2sud2FrZXVwLCBXU1NDKTsKKyAgICAgIHJjID0gY3ln
d2FpdCAocGFjay53YWtldXAsIFdTU0MpOwogICAgICAgRm9yY2VDbG9zZUhhbmRsZSAocGFjay53
YWtldXApOwogICAgIH0KICAgZWxzZQpAQCAtMTMyOSw2ICsxMzI5LDkgQEAgd2FpdF9zaWcgKFZP
SUQgKikKICAgICAgIHNpZ3BhY2tldCBwYWNrID0ge307CiAgICAgICBpZiAoc2lncS5yZXRyeSkK
IAlwYWNrLnNpLnNpX3NpZ25vID0gX19TSUdGTFVTSDsKKyAgICAgIGVsc2UgaWYgKCghUGVla05h
bWVkUGlwZSAobXlfcmVhZHNpZywgTlVMTCwgMCwgTlVMTCwgJm5iLCBOVUxMKQorCQl8fCBuYiA9
PSAwKSAmJiBzaWdxLnN0YXJ0Lm5leHQpCisJcGFjay5zaS5zaV9zaWdubyA9IF9fU0lHRkxVU0g7
CiAgICAgICBlbHNlIGlmICghUmVhZEZpbGUgKG15X3JlYWRzaWcsICZwYWNrLCBzaXplb2YgKHBh
Y2spLCAmbmIsIE5VTEwpKQogCVNsZWVwIChJTkZJTklURSk7CS8qIEFzc3VtZSB3ZXJlIGV4aXRp
bmcuICBOZXZlciBleGl0IHRoaXMgdGhyZWFkICovCiAgICAgICBlbHNlIGlmIChuYiAhPSBzaXpl
b2YgKHBhY2spIHx8ICFwYWNrLnNpLnNpX3NpZ25vKQpAQCAtMTQ2OCw2ICsxNDcxLDE3IEBAIHdh
aXRfc2lnIChWT0lEICopCiAJCSAgICAgIHFuZXh0LT5zaS5zaV9zaWdubyA9IDA7CiAJCSAgICB9
CiAJCX0KKwkgICAgICAvKiBDbGVhbnVwIHNpZ3EgY2hhaW4uIFJlbW92ZSBlbnRyaWVzIGhhdmlu
ZyBzaV9zaWdubyA9PSAwLgorCQkgVGhleSB3ZXJlIG9uY2UgY2xlYW5lZCBvYmV2ZSwgaG93ZXZl
ciBzaWdwYWNrZXQ6OnByb2Nlc3MoKQorCQkgbWF5IHNldCBzaV9zaWdubyB0byAwIHVzaW5nIHNp
Z19jbGVhcigpLiAqLworCSAgICAgIHEgPSAmc2lncS5zdGFydDsKKwkgICAgICB3aGlsZSAoKHFu
ZXh0ID0gcS0+bmV4dCkpCisJCXsKKwkJICBpZiAocW5leHQtPnNpLnNpX3NpZ25vKQorCQkgICAg
cSA9IHFuZXh0OworCQkgIGVsc2UKKwkJICAgIHEtPm5leHQgPSBxbmV4dC0+bmV4dDsKKwkJfQog
CSAgICAgIC8qIEF0IGxlYXN0IG9uZSBzaWduYWwgc3RpbGwgcXVldWVkPyAgVGhlIGV2ZW50IGlz
IHVzZWQgaW4gc2VsZWN0CiAJCSBvbmx5LCBhbmQgb25seSB0byBkZWNpZGUgaWYgV0ZNTyBzaG91
bGQgd2FrZSB1cCBpbiBjYXNlIGEKIAkJIHNpZ25hbGZkIGlzIHdhaXRpbmcgdmlhIHNlbGVjdC9w
b2xsIGZvciBiZWluZyByZWFkeSB0byByZWFkIGEK

--Multipart=_Sat__23_Nov_2024_20_53_07_+0900_QBl.I3+A=Ys5UQSQ
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__23_Nov_2024_20_53_07_+0900_QBl.I3+A=Ys5UQSQ--

- Raw text -


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