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

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


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.


More information about the svn-src-all mailing list