Date: Tue, 18 Jan 2011 16:45:46 -0800 From: Garrett Cooper <gcooper@FreeBSD.org> To: Doug Barton <dougb@freebsd.org> Cc: Jilles Tjoelker <jilles@freebsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r217557 - in head: bin/sh tools/regression/bin/sh/execution Message-ID: <AANLkTikDVTMYQ_vL8=TnFG9rNKQzbSONnu4UwKuutTCL@mail.gmail.com> In-Reply-To: <AANLkTinxgfjBO4rvK0AgvXde_H4uT_iffyB4t43wRBuf@mail.gmail.com> References: <201101182118.p0ILIWA4052343@svn.freebsd.org> <AANLkTiku_GTXf=65m8RK4_RhD7ib5sZOzvvUFc26nvyJ@mail.gmail.com> <4D3631DE.8040408@FreeBSD.org> <AANLkTinxgfjBO4rvK0AgvXde_H4uT_iffyB4t43wRBuf@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jan 18, 2011 at 4:43 PM, Garrett Cooper <gcooper@freebsd.org> wrote= : > On Tue, Jan 18, 2011 at 4:35 PM, Doug Barton <dougb@freebsd.org> wrote: >> On 01/18/2011 14:33, Garrett Cooper wrote: >>> >>> On Tue, Jan 18, 2011 at 1:18 PM, Jilles Tjoelker<jilles@freebsd.org> >>> =A0wrote: >>>> >>>> Author: jilles >>>> Date: Tue Jan 18 21:18:31 2011 >>>> New Revision: 217557 >>>> URL: http://svn.freebsd.org/changeset/base/217557 >>>> >>>> Log: >>>> =A0sh: Fix signal messages being sent to the wrong file sometimes. >>>> >>>> =A0When a foreground job exits on a signal, a message is printed to st= dout >>>> =A0about this. The buffer was not flushed after this which could resul= t in >>>> the >>>> =A0message being written to the wrong file if the next command was a >>>> builtin >>>> =A0and 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 g= et >> rid of, or am I just a loser? :) > > =A0 =A0Don'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 > $ > > =A0 =A0I would expect FOO: to follow Alarm clock, not precede it. > =A0 =A0Whether 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikDVTMYQ_vL8=TnFG9rNKQzbSONnu4UwKuutTCL>