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