Skip site navigation (1)Skip section navigation (2)
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>