Hi Gábor, On Tue, 7 Jan 2020, SZEDER Gábor wrote: > On Wed, Dec 25, 2019 at 11:56:52AM +0000, Johannes Schindelin via GitGitGadget wrote: > > The Perl version supports post-processing the colored diff (that is > > generated in addition to the uncolored diff, intended to offer a > > prettier user experience) by a command configured via that config > > setting, and now the built-in version does that, too. > > So this patch makes the test 'detect bogus diffFilter output' in > 't3701-add-interactive.sh' succeed with the builtin interactive add, > but I stumbled upon a test failure caused by SIGPIPE in an > experimental Travis CI s390x build: > > expecting success of 3701.49 'detect bogus diffFilter output': > git reset --hard && > > echo content >test && > test_config interactive.diffFilter "echo too-short" && > printf y >y && > test_must_fail force_color git add -p <y > > + git reset --hard > HEAD is now at 6ee5ee5 test > + echo content > + test_config interactive.diffFilter echo too-short > + printf y > + test_must_fail force_color git add -p > test_must_fail: died by signal 13: force_color git add -p > error: last command exited with $?=1 > > Turns out it's a general issue, and > > GIT_TEST_ADD_I_USE_BUILTIN=1 ./t3701-add-interactive.sh -r 39,49 --stress > > fails within 10 seconds on my Linux box, whereas the scripted 'add -p' > managed to survive a couple hundred repetitions. You're right, of course. And I had let that slip for too long, as I saw it sporadically happen in the Azure Pipeline, too. This took quite a while to figure out, and I won't claim that I understand _all_ the details: I _think_ that `stdin` being so short "breaks the pipe" and interferes with `add -p`'s normal operation, so I needed to explicitly use the `sigchain` feature to ignore `SIGPIPE` during `add -p`'s main loop. Thanks, Dscho