[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autotest: problem testing daemons, with possible fix
From: |
Paul Eggert |
Subject: |
Re: autotest: problem testing daemons, with possible fix |
Date: |
Thu, 25 Nov 2010 10:47:08 -0800 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6 |
[Following up on
<http://lists.gnu.org/archive/html/autoconf/2010-11/msg00036.html>,
and adding bug-autoconf]
On 11/23/2010 08:58 PM, Luke Mewburn wrote:
> Is there any reason that AT_CHECK doesn't close this fd before
> executing the application?
Thanks for reporting the problem.
I don't know of any reason AT_CHECK wouldn't do that, but I'm
not intimately familiar with the code. Perhaps Paolo (who contributed
this code back in 2003) can comment.
> I've attached a patch that performs this, against autoconf-2.68.
That patch doesn't smell right to me. The output is being redirected
for a reason, and simply undoing the redirection feels odd. I
suspect that any fix should be done inside AT_CHECK instead. Could
you try the following instead, and see whether it works for you? I'm
not sure it's right (hadn't had time to analyze this code) but I think
it's an improvement.
There's a similar issue with high FDs when 'configure' invokes
compilers and whatnot, but that seems like a less-pressing issue;
how many compilers are going to mess up simply because fd 5 is
open?
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 78f1cc6..fc8d866 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -2190,7 +2190,7 @@ m4_define([_AT_CHECK],
AS_ECHO(["$at_srcdir/AT_LINE: AS_ESCAPE([[$1]])"])
_AT_DECIDE_TRACEABLE([$1]) _AT_LINE_ESCAPED
( $at_check_trace; [$1]
-) >>"$at_stdout" 2>>"$at_stderr"
+) >>"$at_stdout" 2>>"$at_stderr" AS_MESSAGE_LOG_FD>&-
at_status=$? at_failed=false
$at_check_filter
m4_ifdef([AT_DIFF_STDERR($4)], [m4_indir([AT_DIFF_STDERR($4)])],
- Re: autotest: problem testing daemons, with possible fix,
Paul Eggert <=