Date: Fri, 9 Mar 2012 23:27:24 -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%2B9ogev5ksni%2Bfab_kFWyak_2HxNiaGpyaQnRMDr6Yduea_ig@mail.gmail.com> In-Reply-To: <CAB%2B9ogdEUa3Q=jBDX-JeX1S7O_95E8MVc8XK2F7y8P0zcTaqiQ@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>
next in thread | previous in thread | raw e-mail | index | archive | help
--20cf307f33c80a601604badbed4c Content-Type: text/plain; charset=ISO-8859-1 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 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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB%2B9ogev5ksni%2Bfab_kFWyak_2HxNiaGpyaQnRMDr6Yduea_ig>