On Tue, Jan 29 2019, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin <johannes.schindelin@xxxxxx> > > It seems that every once in a while in the Git for Windows SDK, there > are some transient file locking issues preventing the test clean up to > delete the trash directory. Let's be gentle and try again five seconds > later, and only error out if it still fails the second time. > > This change helps Windows, and does not hurt any other platform > (normally, it is highly unlikely that said deletion fails, and if it > does, normally it will fail again even 5 seconds later). > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > t/test-lib.sh | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/t/test-lib.sh b/t/test-lib.sh > index f31a1c8f79..9c0ca5effb 100644 > --- a/t/test-lib.sh > +++ b/t/test-lib.sh > @@ -1104,7 +1104,11 @@ test_done () { > error "Tests passed but trash directory already removed before test cleanup; aborting" > > cd "$TRASH_DIRECTORY/.." && > - rm -fr "$TRASH_DIRECTORY" || > + rm -fr "$TRASH_DIRECTORY" || { > + # try again in a bit > + sleep 5; > + rm -fr "$TRASH_DIRECTORY" > + } || > error "Tests passed but test cleanup failed; aborting" > fi > test_at_end_hook_ I saw this sleep while reading some test-lib.sh code, doesn't this break df4c0d1a79 (test-lib: abort when can't remove trash directory, 2017-04-20) for non-Windows platforms? Your CL for v3 suggests this was only encountered in Azure VMs: https://lore.kernel.org/git/pull.31.v3.git.gitgitgadget@xxxxxxxxx/ Aside from this obscure issue, wouldn't it make more sense to have some optional "I'm under CI" flag to skip the teardown one test at a time as we're probably about to shut off the transitory VM soon? I skip some tests, but the test suite creates ~950MB of trash for me. Maybe cheaper for some to just keep that around and have it all removed at the end.