From owner-freebsd-arch@FreeBSD.ORG Sat Mar 10 04:27:25 2012 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CB8B1065670 for ; Sat, 10 Mar 2012 04:27:25 +0000 (UTC) (envelope-from matthewstory@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3D4178FC0A for ; Sat, 10 Mar 2012 04:27:24 +0000 (UTC) Received: by vcmm1 with SMTP id m1so2590808vcm.13 for ; Fri, 09 Mar 2012 20:27:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=1hrz6cmIqaPxHex3VGNNqpwDFFNhzBR8BJOzhhd/owk=; b=LDC6PN1ViuVmPX8U52dHdCUcMEP5tPfpxAlvz/UOfWh0WwYYMfuh9syWMm0XBDdvHW QTOcx6chLbj2x/LCIVzrsPt2ZKdy2IxIgvOWjqpliilWMSNdM1TZkxEUGXBolVY5Fhab BpioJ57z1jgcROk6wQI+/OACJWREpDPaGoSRxBDpWIhNl5CWAgQbydPcTi+2pkdeFgp2 8xTyAAh+OKjjxDqeUtiAvePJjVZS0on+gujeklI4BNPVwew0NZVM17Zj9665q8gVW0gx waX9uQlin0GdA3N4U8Uot+TjBBzz33Dh3Ox+T7WXUYA0LUHbv6wr2xb/RtoKoDt9eA4q WqiQ== MIME-Version: 1.0 Received: by 10.52.34.175 with SMTP id a15mr7684941vdj.18.1331353644326; Fri, 09 Mar 2012 20:27:24 -0800 (PST) Received: by 10.52.93.42 with HTTP; Fri, 9 Mar 2012 20:27:24 -0800 (PST) In-Reply-To: References: <20120309225433.GA32725@stack.nl> Date: Fri, 9 Mar 2012 23:27:24 -0500 Message-ID: From: Matthew Story To: freebsd-arch@freebsd.org Content-Type: multipart/mixed; boundary=20cf307f33c80a601604badbed4c X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Jilles Tjoelker Subject: Re: Change to xargs to avoid orphaning of utility processes on signal|exit 255 from child X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Mar 2012 04:27:25 -0000 --20cf307f33c80a601604badbed4c Content-Type: text/plain; charset=ISO-8859-1 On Fri, Mar 9, 2012 at 6:13 PM, Matthew Story wrote: > On Fri, Mar 9, 2012 at 5:54 PM, Jilles Tjoelker wrote: > >> On Tue, Feb 21, 2012 at 12:50:19PM -0500, Matthew Story wrote: >> > On Thu, Feb 16, 2012 at 7:09 PM, Matthew Story > >wrote: >> > > Apologies if this is the wrong list, I would like to submit a patch >> that >> > > changes the behavior of xargs(1) on signal to child utility process or >> > > child utility process exiting 255. The patch(es) is|are available >> here: >> >> [...snip] >> > This would cause xargs to wait on children if the command line cannot be >> > assembled, or utility cannot be invoked, in addition to the 2 cases >> covered >> > by the patch. This should leave termination via signal to the xargs >> > > process itself as the only outstanding case where xargs orphans >> utilities, >> > which is congruent with sh(1) behavior, and still allows for signaling >> all >> > processes via signal to the process group, if you actually desire to >> signal >> > all utility processes, along with xargs itself. Thoughts? >> >> I think that makes sense. >> >> I updated the patch to the recent changes in -current and changed a >> local from short to int: >> [...snip] > > changes look good to me, thanks for cleaning it up for -CURRENT. I will > provide an additional patch to cover waiting for the other 2 cases (cannot > assemble, or cannot invoke) later tonight after some more testing. > [...snip] > I believe I have finished removing the orphan cases for the assembly failure and invocation failure cases, updated patch attached for review, also available here http://axe0.blackskyresearch.net/patches/matt/xargs.no_orphan.full.patch.txt This patch includes the cleaned-up changes Jilles sent back earlier (thanks again). -- regards, matt --20cf307f33c80a601604badbed4c Content-Type: text/plain; charset=US-ASCII; name="xargs.no_orphan.full.patch.txt" Content-Disposition: attachment; filename="xargs.no_orphan.full.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzm5kii40 SW5kZXg6IHhhcmdzLjEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geGFyZ3MuMQkocmV2aXNpb24gMjMyNzY0KQor KysgeGFyZ3MuMQkod29ya2luZyBjb3B5KQpAQCAtMjk0LDE3ICsyOTQsMTcgQEAKIC5BciB1dGls aXR5CiByZWFkcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dC4KIC5QcAotVGhlCi0uTm0KLXV0aWxp dHkgZXhpdHMgaW1tZWRpYXRlbHkgKHdpdGhvdXQgcHJvY2Vzc2luZyBhbnkgZnVydGhlciBpbnB1 dCkgaWYgYQotY29tbWFuZCBsaW5lIGNhbm5vdCBiZSBhc3NlbWJsZWQsCitJZiBhIGNvbW1hbmQg bGluZSBjYW5ub3QgYmUgYXNzZW1ibGVkLCBvcgorY2Fubm90IGJlIGludm9rZWQsIG9yIGlmIGFu IGludm9jYXRpb24gb2YKIC5BciB1dGlsaXR5Ci1jYW5ub3QgYmUgaW52b2tlZCwgYW4gaW52b2Nh dGlvbiBvZgotLkFyIHV0aWxpdHkKIGlzIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwsCiBvciBhbiBp bnZvY2F0aW9uIG9mCiAuQXIgdXRpbGl0eQotZXhpdHMgd2l0aCBhIHZhbHVlIG9mIDI1NS4KK2V4 aXRzIHdpdGggYSB2YWx1ZSBvZiAyNTUsIHRoZQorLk5tCit1dGlsaXR5IHN0b3BzIHByb2Nlc3Np bmcgaW5wdXQgYW5kIGV4aXRzIGFmdGVyIGFsbCBpbnZvY2F0aW9ucyBvZgorLkFyIHV0aWxpdHkK K2ZpbmlzaCBwcm9jZXNzaW5nLgogLlNoIEVYSVQgU1RBVFVTCiBUaGUKIC5ObQpJbmRleDogeGFy Z3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB4YXJncy5jCShyZXZpc2lvbiAyMzI3NjQpCisrKyB4YXJncy5j CSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBACiBzdGF0aWMgdm9pZAl1c2FnZSh2b2lk KTsKIHZvaWQJCXN0cm5zdWJzdChjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwg c2l6ZV90KTsKIHN0YXRpYyBwaWRfdAl4d2FpdChpbnQgYmxvY2ssIGludCAqc3RhdHVzKTsKK3N0 YXRpYyB2b2lkCXhleGl0KGNvbnN0IGNoYXIgKiwgY29uc3QgaW50KTsKIHN0YXRpYyB2b2lkCXdh aXRjaGlsZHJlbihjb25zdCBjaGFyICosIGludCk7CiBzdGF0aWMgdm9pZAlwaWRzX2luaXQodm9p ZCk7CiBzdGF0aWMgaW50CXBpZHNfZW1wdHkodm9pZCk7CkBAIC0zMDgsOCArMzA5LDEwIEBACiAJ CWNvdW50Kys7CSAgICAvKiBJbmRpY2F0ZSBlbmQtb2YtbGluZSAodXNlZCBieSAtTCkgKi8KIAog CQkvKiBRdW90ZXMgZG8gbm90IGVzY2FwZSBuZXdsaW5lcy4gKi8KLWFyZzE6CQlpZiAoaW5zaW5n bGUgfHwgaW5kb3VibGUpCi0JCQllcnJ4KDEsICJ1bnRlcm1pbmF0ZWQgcXVvdGUiKTsKK2FyZzE6 CQlpZiAoaW5zaW5nbGUgfHwgaW5kb3VibGUpIHsKKwkJCXdhcm54KCJ1bnRlcm1pbmF0ZWQgcXVv dGUiKTsKKwkJCXhleGl0KCphdiwgMSk7CisJCX0KIGFyZzI6CiAJCWZvdW5kZW9mID0gKmVvZnN0 ciAhPSAnXDAnICYmCiAJCSAgICBzdHJuY21wKGFyZ3AsIGVvZnN0ciwgcCAtIGFyZ3ApID09IDA7 CkBAIC0zNDIsOCArMzQ1LDEwIEBACiAJCQkJICovCiAJCQkJaW5wbGluZSA9IHJlYWxsb2MoaW5w bGluZSwgY3VybGVuICsgMiArCiAJCQkJICAgIHN0cmxlbihhcmdwKSk7Ci0JCQkJaWYgKGlucGxp bmUgPT0gTlVMTCkKLQkJCQkJZXJyeCgxLCAicmVhbGxvYyBmYWlsZWQiKTsKKwkJCQlpZiAoaW5w bGluZSA9PSBOVUxMKSB7CisJCQkJCXdhcm54KCJyZWFsbG9jIGZhaWxlZCIpOworCQkJCQl4ZXhp dCgqYXYsIDEpOworCQkJCX0KIAkJCQlpZiAoY3VybGVuID09IDEpCiAJCQkJCXN0cmNweShpbnBs aW5lLCBhcmdwKTsKIAkJCQllbHNlCkBAIC0zNjAsOCArMzY1LDEwIEBACiAJCSAqLwogCQlpZiAo eHAgPT0gZW5keHAgfHwgcCA+IGVicCB8fCBjaCA9PSBFT0YgfHwKIAkJICAgIChMZmxhZyA8PSBj b3VudCAmJiB4ZmxhZykgfHwgZm91bmRlb2YpIHsKLQkJCWlmICh4ZmxhZyAmJiB4cCAhPSBlbmR4 cCAmJiBwID4gZWJwKQotCQkJCWVycngoMSwgImluc3VmZmljaWVudCBzcGFjZSBmb3IgYXJndW1l bnRzIik7CisJCQlpZiAoeGZsYWcgJiYgeHAgIT0gZW5keHAgJiYgcCA+IGVicCkgeworCQkJCXdh cm54KCJpbnN1ZmZpY2llbnQgc3BhY2UgZm9yIGFyZ3VtZW50cyIpOworCQkJCXhleGl0KCphdiwg MSk7CisJCQl9CiAJCQlpZiAoamZvdW5kKSB7CiAJCQkJZm9yIChhdmogPSBhcmd2OyAqYXZqOyBh dmorKykKIAkJCQkJKnhwKysgPSAqYXZqOwpAQCAtMzk0LDggKzQwMSwxMCBAQAogCQlpZiAoemZs YWcpCiAJCQlnb3RvIGFkZGNoOwogCQkvKiBCYWNrc2xhc2ggZXNjYXBlcyBhbnl0aGluZywgaXMg ZXNjYXBlZCBieSBxdW90ZXMuICovCi0JCWlmICghaW5zaW5nbGUgJiYgIWluZG91YmxlICYmIChj aCA9IGdldGNoYXIoKSkgPT0gRU9GKQotCQkJZXJyeCgxLCAiYmFja3NsYXNoIGF0IEVPRiIpOwor CQlpZiAoIWluc2luZ2xlICYmICFpbmRvdWJsZSAmJiAoY2ggPSBnZXRjaGFyKCkpID09IEVPRikg eworCQkJd2FybngoImJhY2tzbGFzaCBhdCBFT0YiKTsKKwkJCXhleGl0KCphdiwgMSk7CisJCX0K IAkJLyogRkFMTFRIUk9VR0ggKi8KIAlkZWZhdWx0OgogYWRkY2g6CQlpZiAocCA8IGVicCkgewpA QCAtNDA0LDExICs0MTMsMTUgQEAKIAkJfQogCiAJCS8qIElmIG9ubHkgb25lIGFyZ3VtZW50LCBu b3QgZW5vdWdoIGJ1ZmZlciBzcGFjZS4gKi8KLQkJaWYgKGJ4cCA9PSB4cCkKLQkJCWVycngoMSwg Imluc3VmZmljaWVudCBzcGFjZSBmb3IgYXJndW1lbnQiKTsKKwkJaWYgKGJ4cCA9PSB4cCkgewor CQkJd2FybngoImluc3VmZmljaWVudCBzcGFjZSBmb3IgYXJndW1lbnQiKTsKKwkJCXhleGl0KCph diwgMSk7CisJCX0KIAkJLyogRGlkbid0IGhpdCBhcmd1bWVudCBsaW1pdCwgc28gaWYgeGZsYWcg b2JqZWN0LiAqLwotCQlpZiAoeGZsYWcpCi0JCQllcnJ4KDEsICJpbnN1ZmZpY2llbnQgc3BhY2Ug Zm9yIGFyZ3VtZW50cyIpOworCQlpZiAoeGZsYWcpIHsKKwkJCXdhcm54KCJpbnN1ZmZpY2llbnQg c3BhY2UgZm9yIGFyZ3VtZW50cyIpOworCQkJeGV4aXQoKmF2LCAxKTsKKwkJfQogCiAJCWlmIChq Zm91bmQpIHsKIAkJCWZvciAoYXZqID0gYXJndjsgKmF2ajsgYXZqKyspCkBAIC00NDksMTYgKzQ2 MiwyMCBAQAogCSAqIGEgTlVMTCBhdCB0aGUgdGFpbC4KIAkgKi8KIAl0bXAgPSBtYWxsb2MoKGFy Z2MgKyAxKSAqIHNpemVvZihjaGFyKiopKTsKLQlpZiAodG1wID09IE5VTEwpCi0JCWVycngoMSwg Im1hbGxvYyBmYWlsZWQiKTsKKwlpZiAodG1wID09IE5VTEwpIHsKKwkJd2FybngoIm1hbGxvYyBm YWlsZWQiKTsKKwkJeGV4aXQoKmFyZ3YsIDEpOworCX0KIAl0bXAyID0gdG1wOwogCiAJLyoKIAkg KiBTYXZlIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgaXRlcmF0ZSBvdmVyIGl0LCB3ZQogCSAqIGNh bm5vdCBkbyBzdHJuc3Vic3QoKSB0byBpdC4KIAkgKi8KLQlpZiAoKCp0bXArKyA9IHN0cmR1cCgq YXZqKyspKSA9PSBOVUxMKQotCQllcnJ4KDEsICJzdHJkdXAgZmFpbGVkIik7CisJaWYgKCgqdG1w KysgPSBzdHJkdXAoKmF2aisrKSkgPT0gTlVMTCkgeworCQl3YXJueCgic3RyZHVwIGZhaWxlZCIp OworCQl4ZXhpdCgqYXJndiwgMSk7CisJfQogCiAJLyoKIAkgKiBGb3IgZWFjaCBhcmd1bWVudCB0 byB1dGlsaXR5LCBpZiB3ZSBoYXZlIG5vdCB1c2VkIHVwCkBAIC00NzUsOCArNDkyLDEwIEBACiAJ CQlpZiAocmVwbHMgPiAwKQogCQkJCXJlcGxzLS07CiAJCX0gZWxzZSB7Ci0JCQlpZiAoKCp0bXAg PSBzdHJkdXAoKnRtcCkpID09IE5VTEwpCi0JCQkJZXJyeCgxLCAic3RyZHVwIGZhaWxlZCIpOwor CQkJaWYgKCgqdG1wID0gc3RyZHVwKCp0bXApKSA9PSBOVUxMKSB7CisJCQkJd2FybngoInN0cmR1 cCBmYWlsZWQiKTsKKwkJCQl4ZXhpdCgqYXJndiwgMSk7CisJCQl9CiAJCQl0bXArKzsKIAkJfQog CX0KQEAgLTU0Nyw3ICs1NjYsOCBAQAogCWNoaWxkZXJyID0gMDsKIAlzd2l0Y2ggKHBpZCA9IHZm b3JrKCkpIHsKIAljYXNlIC0xOgotCQllcnIoMSwgInZmb3JrIik7CisJCXdhcm4oInZmb3JrIik7 CisJCXhleGl0KCphcmd2LCAxKTsKIAljYXNlIDA6CiAJCWlmIChvZmxhZykgewogCQkJaWYgKChm ZCA9IG9wZW4oX1BBVEhfVFRZLCBPX1JET05MWSkpID09IC0xKQpAQCAtNTkzLDI2ICs2MTMsNDcg QEAKIH0KIAogc3RhdGljIHZvaWQKK3hleGl0KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGludCBl eGl0X2NvZGUpIHsKKwl3YWl0Y2hpbGRyZW4obmFtZSwgMSk7CisJZXhpdChleGl0X2NvZGUpOwor fQorCitzdGF0aWMgdm9pZAogd2FpdGNoaWxkcmVuKGNvbnN0IGNoYXIgKm5hbWUsIGludCB3YWl0 YWxsKQogewogCXBpZF90IHBpZDsKIAlpbnQgc3RhdHVzOworCWludCBjYXVzZV9leGl0ID0gMDsK IAogCXdoaWxlICgocGlkID0geHdhaXQod2FpdGFsbCB8fCBwaWRzX2Z1bGwoKSwgJnN0YXR1cykp ID4gMCkgewogCQkvKiBJZiB3ZSBjb3VsZG4ndCBpbnZva2UgdGhlIHV0aWxpdHksIGV4aXQuICov CiAJCWlmIChjaGlsZGVyciAhPSAwKSB7CiAJCQllcnJubyA9IGNoaWxkZXJyOwotCQkJZXJyKGVy cm5vID09IEVOT0VOVCA/IDEyNyA6IDEyNiwgIiVzIiwgbmFtZSk7CisJCQl3YWl0YWxsID0gMTsK KwkJCWNhdXNlX2V4aXQgPSBFTk9FTlQgPyAxMjcgOiAxMjY7CisJCQl3YXJuKCIlcyIsIG5hbWUp OwogCQl9Ci0JCWlmIChXSUZTSUdOQUxFRChzdGF0dXMpKQotCQkJZXJyeCgxLCAiJXM6IHRlcm1p bmF0ZWQgd2l0aCBzaWduYWwgJWQ7IGFib3J0aW5nIiwKKwkJLyoKKwkJICogSWYgdXRpbGl0eSBl eGl0ZWQgYmVjYXVzZSBvZiBhIHNpZ25hbCBvciB3aXRoIGEgdmFsdWUgb2YKKwkJICogMjU1LCB3 YXJuIChwZXIgUE9TSVgpLCBhbmQgdGhlbiB3YWl0IHVudGlsIGFsbCBvdGhlcgorCQkgKiBjaGls ZHJlbiBoYXZlIGV4aXRlZCBiZWZvcmUgZXhpdGluZyAxLTEyNS4gUE9TSVggcmVxdWlyZXMKKwkJ ICogeGFyZ3MgdG8gc3RvcCByZWFkaW5nIGlmIGNoaWxkIGV4aXRzIGJlY2F1c2Ugb2YgYSBzaWdu YWwgb3IKKwkJICogd2l0aCAyNTUsIGJ1dCBpdCBkb2VzIG5vdCByZXF1aXJlIHVzIHRvIGV4aXQg aW1tZWRpYXRlbHk7CisJCSAqIHdhaXRpbmcgaXMgcHJlZmVyYWJsZSB0byBvcnBoYW5pbmcuCisJ CSAqLworCQlpZiAoV0lGU0lHTkFMRUQoc3RhdHVzKSkgeworCQkJd2FpdGFsbCA9IGNhdXNlX2V4 aXQgPSAxOworCQkJd2FybngoIiVzOiB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsICVkOyBhYm9ydGlu ZyIsCiAJCQkgICAgbmFtZSwgV1RFUk1TSUcoc3RhdHVzKSk7Ci0JCWlmIChXRVhJVFNUQVRVUyhz dGF0dXMpID09IDI1NSkKLQkJCWVycngoMSwgIiVzOiBleGl0ZWQgd2l0aCBzdGF0dXMgMjU1OyBh Ym9ydGluZyIsIG5hbWUpOwotCQlpZiAoV0VYSVRTVEFUVVMoc3RhdHVzKSkKLQkJCXJ2YWwgPSAx OworCQl9IGVsc2UgaWYgKFdFWElUU1RBVFVTKHN0YXR1cykgPT0gMjU1KSB7CisJCQl3YWl0YWxs ID0gY2F1c2VfZXhpdCA9IDE7CisJCQl3YXJueCgiJXM6IGV4aXRlZCB3aXRoIHN0YXR1cyAyNTU7 IGFib3J0aW5nIiwgbmFtZSk7CisJCX0gZWxzZSBpZiAoV0VYSVRTVEFUVVMoc3RhdHVzKSkKKyAJ CQlydmFsID0gMTsKIAl9CiAKKyAJaWYgKGNhdXNlX2V4aXQpCisJCWV4aXQoY2F1c2VfZXhpdCk7 CiAJaWYgKHBpZCA9PSAtMSAmJiBlcnJubyAhPSBFQ0hJTEQpCiAJCWVycigxLCAid2FpdHBpZCIp OwogfQo= --20cf307f33c80a601604badbed4c--