From owner-freebsd-bugs@FreeBSD.ORG Tue Aug 31 04:10:04 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0432C1065694 for ; Tue, 31 Aug 2010 04:10:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id CD21C8FC15 for ; Tue, 31 Aug 2010 04:10:03 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o7V4A3rX021437 for ; Tue, 31 Aug 2010 04:10:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o7V4A3rr021419; Tue, 31 Aug 2010 04:10:03 GMT (envelope-from gnats) Date: Tue, 31 Aug 2010 04:10:03 GMT Message-Id: <201008310410.o7V4A3rr021419@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Dan McNulty Cc: Subject: Re: kern/150138: [patch] signal sent to stopped, traced process not immediately handled on continue X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Dan McNulty List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Aug 2010 04:10:04 -0000 The following reply was made to PR kern/150138; it has been noted by GNATS. From: Dan McNulty To: David Xu Cc: FreeBSD-gnats-submit@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 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--