kern/150138: [patch] signal sent to stopped, traced process not
immediately handled on continue
Dan McNulty
dkmcnulty at gmail.com
Tue Aug 31 04:10:04 UTC 2010
The following reply was made to PR kern/150138; it has been noted by GNATS.
From: Dan McNulty <dkmcnulty at gmail.com>
To: David Xu <davidxu at freebsd.org>
Cc: FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/150138: [patch] signal sent to stopped, traced process not
immediately handled on continue
Date: Mon, 30 Aug 2010 23:01:20 -0500
--001636283df03ff741048f16a2f2
Content-Type: text/plain; charset=ISO-8859-1
On Tue, Aug 31, 2010 at 6:09 AM, David Xu <davidxu at freebsd.org> wrote:
> User & wrote:
>
>>> Fix:
>>
>> The attached patch ( to CURRENT ) takes a stab at fixing the problem. The
>> patch
>> adds code so that even if the process is being traced, a signal sent to a
>> interruptibly sleeping thread wakes up the thread so it will handle the
>> signal
>> when the process leaves the stopped state. The added code was copied from
>> the
>> code that handled stopped, non-traced processes later in the same
>> function.
>
> No patch ?
>
Sorry, in trying to figure out send-pr, didn't actually attach the
patch and other files.
They should be attached now.
--001636283df03ff741048f16a2f2
Content-Type: text/x-patch; charset=US-ASCII; name="kern_sig.c.patch"
Content-Disposition: attachment; filename="kern_sig.c.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gdi8cgn90
LS0tIHN5cy9rZXJuL2tlcm5fc2lnLmMub3JpZwkyMDEwLTA4LTI5IDEyOjA4OjA5LjAwMDAwMDAw
MCAtMDUwMAorKysgc3lzL2tlcm4va2Vybl9zaWcuYwkyMDEwLTA4LTI5IDEyOjA5OjAzLjAwMDAw
MDAwMCAtMDUwMApAQCAtMjE0OSw2ICsyMTQ5LDI0IEBACiAJCQkgKiBzbyBubyBmdXJ0aGVyIGFj
dGlvbiBpcyBuZWNlc3NhcnkuCiAJCQkgKiBObyBzaWduYWwgY2FuIHJlc3RhcnQgdXMuCiAJCQkg
Ki8KKworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAqIElmIGEgdGhyZWFkIGlzIHNsZWVwaW5nIGludGVycnVwdGlibHksIHNpbXVsYXRlIGEKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAqIHdha2V1cCBzbyB0aGF0IHdoZW4gaXQgaXMgY29udGlu
dWVkIGl0IHdpbGwgYmUgbWFkZQorICAgICAgICAgICAgICAgICAgICAgICAgICogcnVubmFibGUg
YW5kIGNhbiBsb29rIGF0IHRoZSBzaWduYWwuICBIb3dldmVyLCBkb24ndCBtYWtlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKiB0aGUgUFJPQ0VTUyBydW5uYWJsZSwgbGVhdmUgaXQgc3RvcHBl
ZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEl0IG1heSBydW4gYSBiaXQgdW50aWwgaXQg
aGl0cyBhIHRocmVhZF9zdXNwZW5kX2NoZWNrKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIHdha2V1cF9zd2FwcGVyID0gMDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFBST0NfU0xPQ0socCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0
aHJlYWRfbG9jayh0ZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVERfT05fU0xFRVBR
KHRkKSAmJiAodGQtPnRkX2ZsYWdzICYgVERGX1NJTlRSKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2FrZXVwX3N3YXBwZXIgPSBzbGVlcHFfYWJvcnQodGQsIGludHJ2YWwpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX3VubG9jayh0ZCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9DX1NVTkxPQ0socCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
d2FrZXVwX3N3YXBwZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpY2tfcHJv
YzAoKTsKKwogCQkJZ290byBvdXQ7CiAJCX0KIAo=
--001636283df03ff741048f16a2f2
Content-Type: text/x-csrc; charset=US-ASCII; name="tkill.c"
Content-Disposition: attachment; filename="tkill.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gdi8cqhp1
I2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPHN0
ZGlvLmg+CiNpbmNsdWRlIDxlcnJuby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxz
aWduYWwuaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIGlmKCBhcmdj
ICE9IDQgKSB7CiAgICAgICAgcHJpbnRmKCJVc2FnZTogJXMgPHBpZD4gPGx3cF9pZD4gPHNpZz5c
biIsIGFyZ3ZbMF0pOwogICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICB9CgogICAgcGlk
X3QgcGlkOwogICAgc3NjYW5mKGFyZ3ZbMV0sICIlZCIsICZwaWQpOwoKICAgIGxvbmcgaWQ7CiAg
ICBzc2NhbmYoYXJndlsyXSwgIiVsZCIsICZpZCk7CgogICAgaW50IHNpZzsKICAgIHNzY2FuZihh
cmd2WzNdLCAiJWQiLCAmc2lnKTsKICAgIAogICAgaWYoIHN5c2NhbGwoU1lTX3Rocl9raWxsMiwg
cGlkLCBpZCwgc2lnKSApIHsKICAgICAgICBwZXJyb3IoInN5c2NhbGwiKTsKICAgIH0KCiAgICBy
ZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==
--001636283df03ff741048f16a2f2
Content-Type: text/x-csrc; charset=US-ASCII; name="waitthread.c"
Content-Disposition: attachment; filename="waitthread.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gdi8cuz42
I2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxwdGhyZWFk
Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+CiNpbmNsdWRlIDxzaWdu
YWwuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiNpbmNsdWRl
IDxzdHJpbmcuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2lu
Y2x1ZGUgPHN5cy9zdGF0Lmg+CiNpbmNsdWRlIDxlcnJuby5oPgoKc3RydWN0IHRocmVhZEFyZyB7
CiAgICBpbnQgaWQ7CiAgICBwdGhyZWFkX211dGV4X3QgKm11dGV4Owp9OwoKdm9pZCAqZW50cnko
dm9pZCAqYXJnKSB7CiAgICBzdHJ1Y3QgdGhyZWFkQXJnICp0aGlzQXJnID0gKHN0cnVjdCB0aHJl
YWRBcmcgKilhcmc7CgogICAgbG9uZyBsd3BfaWQgPSB0aGlzQXJnLT5pZDsKICAgIGlmKCBzeXNj
YWxsKFNZU190aHJfc2VsZiwgJmx3cF9pZCkgKSB7CiAgICAgICAgcGVycm9yKCJzeXNjYWxsIik7
CiAgICB9CgogICAgcHJpbnRmKCIlbGQgd2FpdGluZyBvbiBsb2NrXG4iLCBsd3BfaWQpOwoKICAg
IGlmKCBwdGhyZWFkX211dGV4X2xvY2sodGhpc0FyZy0+bXV0ZXgpICE9IDAgKSB7CiAgICAgICAg
cGVycm9yKCJwdGhyZWFkX211dGV4X2xvY2siKTsKICAgICAgICByZXR1cm4gTlVMTDsKICAgIH0K
CiAgICBwcmludGYoIiVsZCBvYnRhaW5lZCBsb2NrXG4iLCBsd3BfaWQpOwoKICAgIGlmKCBwdGhy
ZWFkX211dGV4X3VubG9jayh0aGlzQXJnLT5tdXRleCkgIT0gMCApIHsKICAgICAgICBwZXJyb3Io
InB0aHJlYWRfbXV0ZXhfdW5sb2NrIik7CiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICB9CgogICAg
cHJpbnRmKCIlbGQgcmVsZWFzZWQgbG9ja1xuIiwgbHdwX2lkKTsKCiAgICByZXR1cm4gTlVMTDsK
fQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICBpZiggMiAhPSBhcmdjICkg
ewogICAgICAgIHByaW50ZigiVXNhZ2U6ICVzIDxudW0uIG9mIHRocmVhZHM+XG4iLCBhcmd2WzBd
KTsKICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgfQoKICAgIHByaW50ZigiJWRcbiIs
IGdldHBpZCgpKTsKCiAgICBpbnQgbnVtVGhyZWFkczsKICAgIHNzY2FuZihhcmd2WzFdLCAiJWQi
LCAmbnVtVGhyZWFkcyk7CiAgICBpZiggbnVtVGhyZWFkcyA8IDEgKSBudW1UaHJlYWRzID0gMTsK
CiAgICBwdGhyZWFkX3QgKnRocmVhZHMgPSAocHRocmVhZF90ICopbWFsbG9jKHNpemVvZihwdGhy
ZWFkX3QpKm51bVRocmVhZHMpOwoKICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXggPSAocHRocmVh
ZF9tdXRleF90ICopbWFsbG9jKHNpemVvZihwdGhyZWFkX211dGV4X3QpKTsKCiAgICBpZiggcHRo
cmVhZF9tdXRleF9pbml0KG11dGV4LCBOVUxMKSAhPSAwICkgewogICAgICAgIHBlcnJvcigicHRo
cmVhZF9tdXRleF9pbml0Iik7CiAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgIH0KCiAg
ICBpZiggcHRocmVhZF9tdXRleF9sb2NrKG11dGV4KSAhPSAwICkgewogICAgICAgIHBlcnJvcigi
cHRocmVhZF9tdXRleF9sb2NrIik7CiAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgIH0K
CiAgICBpbnQgaTsKICAgIGZvcihpID0gMDsgaSA8IG51bVRocmVhZHM7ICsraSkgewogICAgICAg
IHN0cnVjdCB0aHJlYWRBcmcgKmFyZyA9IChzdHJ1Y3QgdGhyZWFkQXJnICopbWFsbG9jKHNpemVv
ZihzdHJ1Y3QgdGhyZWFkQXJnKSk7CiAgICAgICAgYXJnLT5pZCA9IGk7CiAgICAgICAgYXJnLT5t
dXRleCA9IG11dGV4OwogICAgICAgIGFzc2VydCggIXB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRzW2ld
LCBOVUxMLCAmZW50cnksICh2b2lkICopYXJnKSApOwogICAgfQoKICAgIC8vIFdhaXQgb24gdGhl
IG5hbWVkIHBpcGUKICAgIHVubGluaygiL3RtcC93YWl0dGhyZWFkIik7CiAgICBpZiggbWtmaWZv
KCIvdG1wL3dhaXR0aHJlYWQiLCBTX0lSVVNSIHwgU19JV1VTUiB8IFNfSVJHUlAgfCBTX0lXR1JQ
KSApIHsKICAgICAgICBwZXJyb3IoIm1rZmlmbyIpOwogICAgICAgIHJldHVybiBFWElUX0ZBSUxV
UkU7CiAgICB9CgogICAgRklMRSAqZmlmbzsKICAgIGRvIHsKICAgICAgICBpZiggKGZpZm8gPSBm
b3BlbigiL3RtcC93YWl0dGhyZWFkIiwgInIiKSkgPT0gTlVMTCApIHsKICAgICAgICAgICAgaWYo
IGVycm5vID09IEVJTlRSICkgY29udGludWU7CgogICAgICAgICAgICBwZXJyb3IoImZvcGVuIik7
CiAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgfQogICAgICAgIGJyZWFr
OwogICAgfXdoaWxlKDEpOwoKICAgIHVuc2lnbmVkIGNoYXIgYnl0ZTsKICAgIGlmKCBmcmVhZCgm
Ynl0ZSwgc2l6ZW9mKHVuc2lnbmVkIGNoYXIpLCAxLCBmaWZvKSAhPSAxICkgewogICAgICAgIHBl
cnJvcigiZnJlYWQiKTsKICAgIH0KCiAgICBmY2xvc2UoZmlmbyk7CgogICAgdW5saW5rKCIvdG1w
L3dhaXR0aHJlYWQiKTsKCiAgICBwcmludGYoIlJlY2VpdmVkIG5vdGlmaWNhdGlvblxuIik7Cgog
ICAgaWYoIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKG11dGV4KSAhPSAwICkgewogICAgICAgIHBlcnJv
cigicHRocmVhZF9tdXRleF91bmxvY2siKTsKICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwog
ICAgfQoKICAgIHByaW50ZigiVW5sb2NrZWQgbXV0ZXgsIGpvaW5pbmdcbiIpOwoKICAgIGZvcihp
ID0gMDsgaSA8IG51bVRocmVhZHM7ICsraSApIHsKICAgICAgICBhc3NlcnQoICFwdGhyZWFkX2pv
aW4odGhyZWFkc1tpXSwgTlVMTCkgKTsKICAgIH0KCiAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwp9
Cg==
--001636283df03ff741048f16a2f2--
More information about the freebsd-bugs
mailing list