svn commit: r217557 - in head: bin/sh tools/regression/bin/sh/execution

Garrett Cooper gcooper at FreeBSD.org
Wed Jan 19 00:45:49 UTC 2011


On Tue, Jan 18, 2011 at 4:43 PM, Garrett Cooper <gcooper at freebsd.org> wrote:
> On Tue, Jan 18, 2011 at 4:35 PM, Doug Barton <dougb at freebsd.org> wrote:
>> On 01/18/2011 14:33, Garrett Cooper wrote:
>>>
>>> On Tue, Jan 18, 2011 at 1:18 PM, Jilles Tjoelker<jilles at freebsd.org>
>>>  wrote:
>>>>
>>>> Author: jilles
>>>> Date: Tue Jan 18 21:18:31 2011
>>>> New Revision: 217557
>>>> URL: http://svn.freebsd.org/changeset/base/217557
>>>>
>>>> Log:
>>>>  sh: Fix signal messages being sent to the wrong file sometimes.
>>>>
>>>>  When a foreground job exits on a signal, a message is printed to stdout
>>>>  about this. The buffer was not flushed after this which could result in
>>>> the
>>>>  message being written to the wrong file if the next command was a
>>>> builtin
>>>>  and had stdout redirected.
>>
>> Does this mean that portmaster is going to stop printing those !*@%$@(#
>> "Terminated" messages that I have never been able to figure out how to get
>> rid of, or am I just a loser? :)
>
>    Don't know. I noticed it because the posix testsuite has a program
> that traps SIGALRM (system/OS dependent signal number) for the purpose
> of watchdog'ing testcases so they don't hang. So it was doing
> something like this:
>
> $ sh
> $ python -c 'import os, signal; os.kill(0, signal.SIGALRM)' >/dev/null
> 2>&1; echo $? > foo; echo "FOO:"; cat foo
> FOO:
> Alarm clock
> 142
> $
>
>    I would expect FOO: to follow Alarm clock, not precede it.
>    Whether or not this fixes portmaster, I dunno... try running bash
> or dash instead of /bin/sh to see whether or not the `problem' still
> occurs.
> HTH,
> -Garrett
>
> PS Shells printing out Terminated, Alarm clock, etc is in the POSIX spec IIRC.

    One other note -- the workaround for the above issue I discovered
was to capture $? in a local variable and then echo it out the value
of the local variable to a file. You may or may not be able to
implement the same workaround *shrugs*.
Thanks,
-Garrett


More information about the svn-src-all mailing list