From owner-freebsd-arch@FreeBSD.ORG Sat Mar 10 18:23:04 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 0195C1065673 for ; Sat, 10 Mar 2012 18:23:04 +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 A1C948FC15 for ; Sat, 10 Mar 2012 18:23:03 +0000 (UTC) Received: by vcmm1 with SMTP id m1so3258502vcm.13 for ; Sat, 10 Mar 2012 10:23:03 -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=mwci5DH7houUP4PYiuAlTF3TNyJ9ARRPHWcMshb898A=; b=Ng7HG1GVHJRZNG+WRa0K2eZ/u2ncxnYbBmijcTs0mANrXh2amCFnx/hgi6O1vXVThz pH35Q3FCOEmSwh9z/KAm3pFnf6Rddc4ylIJOyOxJ0O8ylrHP0O3fQWOIFi/mjUu8oEEJ Pqac+hfaOuw8f7v2H48ukchw3fRDgXEwGn+7mp9n2yFV2LDAYIiIjq/116Hz1tnATBDr IbIT1oKx+Zw+VBnuUTIsfwkRmGwOrtqv1zsRIGvUzI65lM3qtecbxkfP0Jr5hLlFqbJC opkXGR6iONFOCZjH6/NC/hpowAfZMV/0k398XGhEpzkdkmf/FdfqMao7As9mOsx5Rg1I 1+xA== MIME-Version: 1.0 Received: by 10.52.93.179 with SMTP id cv19mr10209576vdb.103.1331403782911; Sat, 10 Mar 2012 10:23:02 -0800 (PST) Received: by 10.52.93.42 with HTTP; Sat, 10 Mar 2012 10:23:02 -0800 (PST) In-Reply-To: References: <20120309225433.GA32725@stack.nl> Date: Sat, 10 Mar 2012 13:23:02 -0500 Message-ID: From: Matthew Story To: freebsd-arch@freebsd.org Content-Type: multipart/mixed; boundary=20cf3071cde288766004bae7991f 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 18:23:04 -0000 --20cf3071cde288766004bae7991f Content-Type: text/plain; charset=ISO-8859-1 On Fri, Mar 9, 2012 at 11:27 PM, Matthew Story wrote: > 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 > Updated this patch (also attached), to consolidate all waitchildren, exit to use xexit, and tidied up a multiple warning condition on childerr to warn only once while waiting to exit. > > This patch includes the cleaned-up changes Jilles sent back earlier > (thanks again). > > -- > regards, > matt > -- regards, matt --20cf3071cde288766004bae7991f 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_gzmzex3u1 SW5kZXg6IHhhcmdzLjEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geGFyZ3MuMQkocmV2aXNpb24gMjMyNzg3KQor KysgeGFyZ3MuMQkod29ya2luZyBjb3B5KQpAQCAtMjk0LDE3ICsyOTQsMTcgQEAKIC5BciB1dGls aXR5CiByZWFkcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dC4KIC5QcAotVGhlCi0uTm0KLXV0aWxp dHkgZXhpdHMgaW1tZWRpYXRlbHkgKHdpdGhvdXQgcHJvY2Vzc2luZyBhbnkgZnVydGhlciBpbnB1 dCkgaWYgYQotY29tbWFuZCBsaW5lIGNhbm5vdCBiZSBhc3NlbWJsZWQsCitJZiBhIGNvbW1hbmQg bGluZSBjYW5ub3QgYmUgYXNzZW1ibGVkLCBvcgorY2Fubm90IGJlIGludm9rZWQsIG9yIGlmIGFu IGludm9jYXRpb24gb2YKIC5BciB1dGlsaXR5Ci1jYW5ub3QgYmUgaW52b2tlZCwgYW4gaW52b2Nh dGlvbiBvZgotLkFyIHV0aWxpdHkKIGlzIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwsCiBvciBhbiBp bnZvY2F0aW9uIG9mCiAuQXIgdXRpbGl0eQotZXhpdHMgd2l0aCBhIHZhbHVlIG9mIDI1NS4KK2V4 aXRzIHdpdGggYSB2YWx1ZSBvZiAyNTUsIHRoZQorLk5tCit1dGlsaXR5IHN0b3BzIHByb2Nlc3Np bmcgaW5wdXQgYW5kIGV4aXRzIGFmdGVyIGFsbCBpbnZvY2F0aW9ucyBvZgorLkFyIHV0aWxpdHkK K2ZpbmlzaCBwcm9jZXNzaW5nLgogLlNoIEVYSVQgU1RBVFVTCiBUaGUKIC5ObQpJbmRleDogeGFy Z3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSB4YXJncy5jCShyZXZpc2lvbiAyMzI3ODcpCisrKyB4YXJncy5j CSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBACiBzdGF0aWMgdm9pZAl1c2FnZSh2b2lk KTsKIHZvaWQJCXN0cm5zdWJzdChjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwg c2l6ZV90KTsKIHN0YXRpYyBwaWRfdAl4d2FpdChpbnQgYmxvY2ssIGludCAqc3RhdHVzKTsKK3N0 YXRpYyB2b2lkCXhleGl0KGNvbnN0IGNoYXIgKiwgY29uc3QgaW50KTsKIHN0YXRpYyB2b2lkCXdh aXRjaGlsZHJlbihjb25zdCBjaGFyICosIGludCk7CiBzdGF0aWMgdm9pZAlwaWRzX2luaXQodm9p ZCk7CiBzdGF0aWMgaW50CXBpZHNfZW1wdHkodm9pZCk7CkBAIC0yODAsMTAgKzI4MSw4IEBACiAJ c3dpdGNoIChjaCA9IGdldGNoYXIoKSkgewogCWNhc2UgRU9GOgogCQkvKiBObyBhcmd1bWVudHMg c2luY2UgbGFzdCBleGVjLiAqLwotCQlpZiAocCA9PSBiYnApIHsKLQkJCXdhaXRjaGlsZHJlbigq YXYsIDEpOwotCQkJZXhpdChydmFsKTsKLQkJfQorCQlpZiAocCA9PSBiYnApCisJCQl4ZXhpdCgq YXYsIHJ2YWwpOwogCQlnb3RvIGFyZzE7CiAJY2FzZSAnICc6CiAJY2FzZSAnXHQnOgpAQCAtMzA4 LDggKzMwNywxMCBAQAogCQljb3VudCsrOwkgICAgLyogSW5kaWNhdGUgZW5kLW9mLWxpbmUgKHVz ZWQgYnkgLUwpICovCiAKIAkJLyogUXVvdGVzIGRvIG5vdCBlc2NhcGUgbmV3bGluZXMuICovCi1h cmcxOgkJaWYgKGluc2luZ2xlIHx8IGluZG91YmxlKQotCQkJZXJyeCgxLCAidW50ZXJtaW5hdGVk IHF1b3RlIik7CithcmcxOgkJaWYgKGluc2luZ2xlIHx8IGluZG91YmxlKSB7CisJCQl3YXJueCgi dW50ZXJtaW5hdGVkIHF1b3RlIik7CisJCQl4ZXhpdCgqYXYsIDEpOworCQl9CiBhcmcyOgogCQlm b3VuZGVvZiA9ICplb2ZzdHIgIT0gJ1wwJyAmJgogCQkgICAgc3RybmNtcChhcmdwLCBlb2ZzdHIs IHAgLSBhcmdwKSA9PSAwOwpAQCAtMzQyLDggKzM0MywxMCBAQAogCQkJCSAqLwogCQkJCWlucGxp bmUgPSByZWFsbG9jKGlucGxpbmUsIGN1cmxlbiArIDIgKwogCQkJCSAgICBzdHJsZW4oYXJncCkp OwotCQkJCWlmIChpbnBsaW5lID09IE5VTEwpCi0JCQkJCWVycngoMSwgInJlYWxsb2MgZmFpbGVk Iik7CisJCQkJaWYgKGlucGxpbmUgPT0gTlVMTCkgeworCQkJCQl3YXJueCgicmVhbGxvYyBmYWls ZWQiKTsKKwkJCQkJeGV4aXQoKmF2LCAxKTsKKwkJCQl9CiAJCQkJaWYgKGN1cmxlbiA9PSAxKQog CQkJCQlzdHJjcHkoaW5wbGluZSwgYXJncCk7CiAJCQkJZWxzZQpAQCAtMzYwLDE3ICszNjMsMTcg QEAKIAkJICovCiAJCWlmICh4cCA9PSBlbmR4cCB8fCBwID4gZWJwIHx8IGNoID09IEVPRiB8fAog CQkgICAgKExmbGFnIDw9IGNvdW50ICYmIHhmbGFnKSB8fCBmb3VuZGVvZikgewotCQkJaWYgKHhm bGFnICYmIHhwICE9IGVuZHhwICYmIHAgPiBlYnApCi0JCQkJZXJyeCgxLCAiaW5zdWZmaWNpZW50 IHNwYWNlIGZvciBhcmd1bWVudHMiKTsKKwkJCWlmICh4ZmxhZyAmJiB4cCAhPSBlbmR4cCAmJiBw ID4gZWJwKSB7CisJCQkJd2FybngoImluc3VmZmljaWVudCBzcGFjZSBmb3IgYXJndW1lbnRzIik7 CisJCQkJeGV4aXQoKmF2LCAxKTsKKwkJCX0KIAkJCWlmIChqZm91bmQpIHsKIAkJCQlmb3IgKGF2 aiA9IGFyZ3Y7ICphdmo7IGF2aisrKQogCQkJCQkqeHArKyA9ICphdmo7CiAJCQl9CiAJCQlwcmVy dW4oYXJnYywgYXYpOwotCQkJaWYgKGNoID09IEVPRiB8fCBmb3VuZGVvZikgewotCQkJCXdhaXRj aGlsZHJlbigqYXYsIDEpOwotCQkJCWV4aXQocnZhbCk7Ci0JCQl9CisJCQlpZiAoY2ggPT0gRU9G IHx8IGZvdW5kZW9mKQorCQkJCXhleGl0KCphdiwgcnZhbCk7CiAJCQlwID0gYmJwOwogCQkJeHAg PSBieHA7CiAJCQljb3VudCA9IDA7CkBAIC0zOTQsOCArMzk3LDEwIEBACiAJCWlmICh6ZmxhZykK IAkJCWdvdG8gYWRkY2g7CiAJCS8qIEJhY2tzbGFzaCBlc2NhcGVzIGFueXRoaW5nLCBpcyBlc2Nh cGVkIGJ5IHF1b3Rlcy4gKi8KLQkJaWYgKCFpbnNpbmdsZSAmJiAhaW5kb3VibGUgJiYgKGNoID0g Z2V0Y2hhcigpKSA9PSBFT0YpCi0JCQllcnJ4KDEsICJiYWNrc2xhc2ggYXQgRU9GIik7CisJCWlm ICghaW5zaW5nbGUgJiYgIWluZG91YmxlICYmIChjaCA9IGdldGNoYXIoKSkgPT0gRU9GKSB7CisJ CQl3YXJueCgiYmFja3NsYXNoIGF0IEVPRiIpOworCQkJeGV4aXQoKmF2LCAxKTsKKwkJfQogCQkv KiBGQUxMVEhST1VHSCAqLwogCWRlZmF1bHQ6CiBhZGRjaDoJCWlmIChwIDwgZWJwKSB7CkBAIC00 MDQsMTEgKzQwOSwxNSBAQAogCQl9CiAKIAkJLyogSWYgb25seSBvbmUgYXJndW1lbnQsIG5vdCBl bm91Z2ggYnVmZmVyIHNwYWNlLiAqLwotCQlpZiAoYnhwID09IHhwKQotCQkJZXJyeCgxLCAiaW5z dWZmaWNpZW50IHNwYWNlIGZvciBhcmd1bWVudCIpOworCQlpZiAoYnhwID09IHhwKSB7CisJCQl3 YXJueCgiaW5zdWZmaWNpZW50IHNwYWNlIGZvciBhcmd1bWVudCIpOworCQkJeGV4aXQoKmF2LCAx KTsKKwkJfQogCQkvKiBEaWRuJ3QgaGl0IGFyZ3VtZW50IGxpbWl0LCBzbyBpZiB4ZmxhZyBvYmpl Y3QuICovCi0JCWlmICh4ZmxhZykKLQkJCWVycngoMSwgImluc3VmZmljaWVudCBzcGFjZSBmb3Ig YXJndW1lbnRzIik7CisJCWlmICh4ZmxhZykgeworCQkJd2FybngoImluc3VmZmljaWVudCBzcGFj ZSBmb3IgYXJndW1lbnRzIik7CisJCQl4ZXhpdCgqYXYsIDEpOworCQl9CiAKIAkJaWYgKGpmb3Vu ZCkgewogCQkJZm9yIChhdmogPSBhcmd2OyAqYXZqOyBhdmorKykKQEAgLTQ0OSwxNiArNDU4LDIw IEBACiAJICogYSBOVUxMIGF0IHRoZSB0YWlsLgogCSAqLwogCXRtcCA9IG1hbGxvYygoYXJnYyAr IDEpICogc2l6ZW9mKGNoYXIqKikpOwotCWlmICh0bXAgPT0gTlVMTCkKLQkJZXJyeCgxLCAibWFs bG9jIGZhaWxlZCIpOworCWlmICh0bXAgPT0gTlVMTCkgeworCQl3YXJueCgibWFsbG9jIGZhaWxl ZCIpOworCQl4ZXhpdCgqYXJndiwgMSk7CisJfQogCXRtcDIgPSB0bXA7CiAKIAkvKgogCSAqIFNh dmUgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBpdGVyYXRlIG92ZXIgaXQsIHdlCiAJICogY2Fubm90 IGRvIHN0cm5zdWJzdCgpIHRvIGl0LgogCSAqLwotCWlmICgoKnRtcCsrID0gc3RyZHVwKCphdmor KykpID09IE5VTEwpCi0JCWVycngoMSwgInN0cmR1cCBmYWlsZWQiKTsKKwlpZiAoKCp0bXArKyA9 IHN0cmR1cCgqYXZqKyspKSA9PSBOVUxMKSB7CisJCXdhcm54KCJzdHJkdXAgZmFpbGVkIik7CisJ CXhleGl0KCphcmd2LCAxKTsKKwl9CiAKIAkvKgogCSAqIEZvciBlYWNoIGFyZ3VtZW50IHRvIHV0 aWxpdHksIGlmIHdlIGhhdmUgbm90IHVzZWQgdXAKQEAgLTQ3NSw4ICs0ODgsMTAgQEAKIAkJCWlm IChyZXBscyA+IDApCiAJCQkJcmVwbHMtLTsKIAkJfSBlbHNlIHsKLQkJCWlmICgoKnRtcCA9IHN0 cmR1cCgqdG1wKSkgPT0gTlVMTCkKLQkJCQllcnJ4KDEsICJzdHJkdXAgZmFpbGVkIik7CisJCQlp ZiAoKCp0bXAgPSBzdHJkdXAoKnRtcCkpID09IE5VTEwpIHsKKwkJCQl3YXJueCgic3RyZHVwIGZh aWxlZCIpOworCQkJCXhleGl0KCphcmd2LCAxKTsKKwkJCX0KIAkJCXRtcCsrOwogCQl9CiAJfQpA QCAtNTQ3LDcgKzU2Miw4IEBACiAJY2hpbGRlcnIgPSAwOwogCXN3aXRjaCAocGlkID0gdmZvcmso KSkgewogCWNhc2UgLTE6Ci0JCWVycigxLCAidmZvcmsiKTsKKwkJd2FybigidmZvcmsiKTsKKwkJ eGV4aXQoKmFyZ3YsIDEpOwogCWNhc2UgMDoKIAkJaWYgKG9mbGFnKSB7CiAJCQlpZiAoKGZkID0g b3BlbihfUEFUSF9UVFksIE9fUkRPTkxZKSkgPT0gLTEpCkBAIC01OTMsMjYgKzYwOSw0NyBAQAog fQogCiBzdGF0aWMgdm9pZAoreGV4aXQoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgaW50IGV4aXRf Y29kZSkgeworCXdhaXRjaGlsZHJlbihuYW1lLCAxKTsKKwlleGl0KGV4aXRfY29kZSk7Cit9CisK K3N0YXRpYyB2b2lkCiB3YWl0Y2hpbGRyZW4oY29uc3QgY2hhciAqbmFtZSwgaW50IHdhaXRhbGwp CiB7CiAJcGlkX3QgcGlkOwogCWludCBzdGF0dXM7CisJaW50IGNhdXNlX2V4aXQgPSAwOwogCiAJ d2hpbGUgKChwaWQgPSB4d2FpdCh3YWl0YWxsIHx8IHBpZHNfZnVsbCgpLCAmc3RhdHVzKSkgPiAw KSB7Ci0JCS8qIElmIHdlIGNvdWxkbid0IGludm9rZSB0aGUgdXRpbGl0eSwgZXhpdC4gKi8KLQkJ aWYgKGNoaWxkZXJyICE9IDApIHsKKwkJLyogSWYgd2UgY291bGRuJ3QgaW52b2tlIHRoZSB1dGls aXR5LCB3YXJuIGFuZCBmbGFnIGZvciBleGl0LiAqLworCQlpZiAoY2hpbGRlcnIgIT0gMCAmJiBj YXVzZV9leGl0ID09IDApIHsKIAkJCWVycm5vID0gY2hpbGRlcnI7Ci0JCQllcnIoZXJybm8gPT0g RU5PRU5UID8gMTI3IDogMTI2LCAiJXMiLCBuYW1lKTsKKwkJCXdhaXRhbGwgPSAxOworCQkJY2F1 c2VfZXhpdCA9IEVOT0VOVCA/IDEyNyA6IDEyNjsKKwkJCXdhcm4oIiVzIiwgbmFtZSk7CiAJCX0K LQkJaWYgKFdJRlNJR05BTEVEKHN0YXR1cykpCi0JCQllcnJ4KDEsICIlczogdGVybWluYXRlZCB3 aXRoIHNpZ25hbCAlZDsgYWJvcnRpbmciLAorCQkvKgorCQkgKiBJZiB1dGlsaXR5IGV4aXRlZCBi ZWNhdXNlIG9mIGEgc2lnbmFsIG9yIHdpdGggYSB2YWx1ZSBvZgorCQkgKiAyNTUsIHdhcm4gKHBl ciBQT1NJWCksIGFuZCB0aGVuIHdhaXQgdW50aWwgYWxsIG90aGVyCisJCSAqIGNoaWxkcmVuIGhh dmUgZXhpdGVkIGJlZm9yZSBleGl0aW5nIDEtMTI1LiBQT1NJWCByZXF1aXJlcworCQkgKiB4YXJn cyB0byBzdG9wIHJlYWRpbmcgaWYgY2hpbGQgZXhpdHMgYmVjYXVzZSBvZiBhIHNpZ25hbCBvcgor CQkgKiB3aXRoIDI1NSwgYnV0IGl0IGRvZXMgbm90IHJlcXVpcmUgdXMgdG8gZXhpdCBpbW1lZGlh dGVseTsKKwkJICogd2FpdGluZyBpcyBwcmVmZXJhYmxlIHRvIG9ycGhhbmluZy4KKwkJICovCisJ CWlmIChXSUZTSUdOQUxFRChzdGF0dXMpKSB7CisJCQl3YWl0YWxsID0gY2F1c2VfZXhpdCA9IDE7 CisJCQl3YXJueCgiJXM6IHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgJWQ7IGFib3J0aW5nIiwKIAkJ CSAgICBuYW1lLCBXVEVSTVNJRyhzdGF0dXMpKTsKLQkJaWYgKFdFWElUU1RBVFVTKHN0YXR1cykg PT0gMjU1KQotCQkJZXJyeCgxLCAiJXM6IGV4aXRlZCB3aXRoIHN0YXR1cyAyNTU7IGFib3J0aW5n IiwgbmFtZSk7Ci0JCWlmIChXRVhJVFNUQVRVUyhzdGF0dXMpKQotCQkJcnZhbCA9IDE7CisJCX0g ZWxzZSBpZiAoV0VYSVRTVEFUVVMoc3RhdHVzKSA9PSAyNTUpIHsKKwkJCXdhaXRhbGwgPSBjYXVz ZV9leGl0ID0gMTsKKwkJCXdhcm54KCIlczogZXhpdGVkIHdpdGggc3RhdHVzIDI1NTsgYWJvcnRp bmciLCBuYW1lKTsKKwkJfSBlbHNlIGlmIChXRVhJVFNUQVRVUyhzdGF0dXMpKQorIAkJCXJ2YWwg PSAxOwogCX0KIAorIAlpZiAoY2F1c2VfZXhpdCkKKwkJZXhpdChjYXVzZV9leGl0KTsKIAlpZiAo cGlkID09IC0xICYmIGVycm5vICE9IEVDSElMRCkKIAkJZXJyKDEsICJ3YWl0cGlkIik7CiB9Cg== --20cf3071cde288766004bae7991f--