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