[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Stable 2.0 and popen.test on Debian Squeeze
From: |
Mark H Weaver |
Subject: |
Re: Stable 2.0 and popen.test on Debian Squeeze |
Date: |
Wed, 02 Mar 2011 05:40:09 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
<address@hidden> writes:
> address@hidden:~/src/guile$ ./check-guile popen.test
> Testing /home/dsmith/src/guile/meta/guile ... popen.test
> with GUILE_LOAD_PATH=/home/dsmith/src/guile/test-suite
> Running popen.test
> FAIL: popen.test: open-output-pipe: no duplicate
The problem here is that "dash -c COMMAND" runs COMMAND as a subprocess
of dash, whereas "bash -c COMMAND" which uses exec such that COMMAND
replaces the bash process.
dash's behavior breaks the "open-output-pipe: no duplicate" test, which
checks that the parent will receive a SIGPIPE if the child closes its
STDIN without terminating. This depends on the child not keeping a
duplicate of that file descriptor around (as was done in Guile 1.6.4),
hence the name of the test.
Because "dash -c" creates a subprocess instead of exec'ing, the waiting
dash process is holding a duplicate of its STDIN open. This prevents
the child from closing the end of the pipe, and thus the parent does not
receive a SIGPIPE and the test fails.
Mark