Date: Sat, 10 Mar 2012 13:23:02 -0500 From: Matthew Story <matthewstory@gmail.com> To: freebsd-arch@freebsd.org Cc: Jilles Tjoelker <jilles@stack.nl> Subject: Re: Change to xargs to avoid orphaning of utility processes on signal|exit 255 from child Message-ID: <CAB%2B9ogedvEX-Au4Qw_sVczxOYB70yuYiiY8jh1i5gxq1W7rOXQ@mail.gmail.com> In-Reply-To: <CAB%2B9ogev5ksni%2Bfab_kFWyak_2HxNiaGpyaQnRMDr6Yduea_ig@mail.gmail.com> References: <CAB%2B9ogetrht1Ttf53vSbq7L5Fe9DbB5igSynKM3=tjZh0z0_ew@mail.gmail.com> <CAB%2B9ogcVr-pNof-Tncc6F8CKjm3suqt=U-zvy9We0YEouwxhFw@mail.gmail.com> <20120309225433.GA32725@stack.nl> <CAB%2B9ogdEUa3Q=jBDX-JeX1S7O_95E8MVc8XK2F7y8P0zcTaqiQ@mail.gmail.com> <CAB%2B9ogev5ksni%2Bfab_kFWyak_2HxNiaGpyaQnRMDr6Yduea_ig@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--20cf3071cde288766004bae7991f Content-Type: text/plain; charset=ISO-8859-1 On Fri, Mar 9, 2012 at 11:27 PM, Matthew Story <matthewstory@gmail.com>wrote: > On Fri, Mar 9, 2012 at 6:13 PM, Matthew Story <matthewstory@gmail.com>wrote: > >> On Fri, Mar 9, 2012 at 5:54 PM, Jilles Tjoelker <jilles@stack.nl> 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 <matthewstory@gmail.com >>> >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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB%2B9ogedvEX-Au4Qw_sVczxOYB70yuYiiY8jh1i5gxq1W7rOXQ>