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