env: fix regression of --ignore-signal=PIPE#9618
Conversation
|
GNU testsuite comparison: |
c362cfb to
62e4f7b
Compare
|
GNU testsuite comparison: |
62e4f7b to
67a4741
Compare
|
GNU testsuite comparison: |
67a4741 to
8a264a0
Compare
|
GNU testsuite comparison: |
8a264a0 to
73a0844
Compare
|
GNU testsuite comparison: |
|
please fix the conflicts |
73a0844 to
98e348d
Compare
I have fixed the conflicts. However while doing it I have noticed that the test fails if the default "yes" is from uutils coreutils on the machine running the test (it works with "yes" from GNU coreutils). This is because uutils yes unconditionally restores the sigpipe handler to its default value (by calling I could fix it in this PR as well, but it is not directly related in principle. |
|
GNU testsuite comparison: |
98e348d to
cffd508
Compare
|
GNU testsuite comparison: |
6130ebb to
0cd6f10
Compare
CodSpeed Performance ReportMerging this PR will degrade performance by 3.57%Comparing Summary
Performance Changes
Footnotes
|
0cd6f10 to
ec859ea
Compare
|
I have changed the test to use seq instead of yes. For some unknown reason, yes doesn't seem to exit when receiving EPIPE in the openbsd CI job. Thus the openbsd test job was hanging forever. |
- revert uutils#9614 because `Command::exec()` resets the default signal handler for SIGPIPE, interfering with the option `--ignore-signal=PIPE` - add regression-test for --ignore-signal=PIPE Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
|
GNU testsuite comparison: |
ec859ea to
11708b5
Compare
|
GNU testsuite comparison: |
|
@sylvestre @cakebaker the PR is good to go. The CodSpeed failure is in |
|
I was keeping an eye on this PR for when the 9.10 upgrade happened since the env-signal gnu test began failing because it added a test for SIGPIPE, when running the tests locally I was able to confirm that this fixes all of the tests related to env and sigpipes. The only reason the GNU test is still failing is because we're missing RTMIN and RTMAX in our signal library |
|
Was fuzzing to see the other impacts of this change by using strace and by trying to explore what exec does under the hood and I haven't come across any other behaviors that this would regress and it fixes multiple test cases the env signal handler gnu test. We should also do a similar change in timeout eventually and it will allow us to remove a bunch of unsafe blocks. |
- revert uutils#9614 because `Command::exec()` resets the default signal handler for SIGPIPE, interfering with the option `--ignore-signal=PIPE` - add regression-test for --ignore-signal=PIPE Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Command::exec()resets the default signal handler for SIGPIPE, interfering with the option--ignore-signal=PIPEFixes #9617