On February 16, 2019 3:27, Max Kirillov wrote: > On Fri, Feb 15, 2019 at 04:13:15PM -0500, Randall S. Becker wrote: > > Sadly, the fix does not change the results. In fact, it makes the hang > > far more likely. Subtest 6,7,8 fails here, at close() > > Correct, I did not expect it to help, it was for the other issue. > > As for the hang issue, from your another message it seems to me that perl > waiting correctly, there are really child process which do not exit. > > What you could try is > https://public-inbox.org/git/20181124093719.10705-1-max@xxxxxxxxxx/ > (I'm not sure it would not conflict by now), this would remove dependency > between tests. If it helps it would be very valuable information. Good news. This patch does seem to do the trick. I wonder whether this fixes the Azure build also. I have run the test under the following conditions: Run 1 (system idle): Pass Run 2 (system idle): Pass Run 3 (system idle): Pass Run 4 (system idle): Pass Run 5 (system idle): Pass Run 6 (system mild load, heavy file system): Pass Run 7 (system mild load, moderate file system load - git fetch): Pass Run 8 (heavy system load, heavy file system load): Pass Run 9 (--verbose, heavy system load, heavy file system load): Pass Run 10 (GIT_TRACE=true, --verbose, heavy system load, heavy file system load): Pass Run 11 (very heavy system load, very heavy file system load): Pass The current condition of the code is (the generate_zero_bytes delete was previously removed so can be ignored for the patch): diff --git a/t/t5562-http-backend-content-length.sh b/t/t5562-http-backend-content-length.sh index bbadde2c6e..f0f425b2cf 100755 --- a/t/t5562-http-backend-content-length.sh +++ b/t/t5562-http-backend-content-length.sh @@ -8,12 +8,12 @@ test_lazy_prereq GZIP 'gzip --version' verify_http_result() { # some fatal errors still produce status 200 # so check if there is the error message - if grep 'fatal:' act.err + if grep 'fatal:' act.err.$test_count then return 1 fi - if ! grep "Status" act.out >act + if ! grep "Status" act.out.$test_count >act then printf "Status: 200 OK\r\n" >act fi @@ -33,7 +33,7 @@ test_http_env() { REQUEST_METHOD=POST \ "$PERL_PATH" \ "$TEST_DIRECTORY"/t5562/invoke-with-content-length.pl \ - "$request_body" git http-backend >act.out 2>act.err + "$request_body" git http-backend >act.out.$test_count 2>act.err.$test_count } ssize_b100dots() { @@ -143,14 +143,14 @@ test_expect_success GZIP 'push gzipped empty' ' test_expect_success 'CONTENT_LENGTH overflow ssite_t' ' NOT_FIT_IN_SSIZE=$(ssize_b100dots) && - generate_zero_bytes infinity | env \ + env \ CONTENT_TYPE=application/x-git-upload-pack-request \ QUERY_STRING=/repo.git/git-upload-pack \ PATH_TRANSLATED="$PWD"/.git/git-upload-pack \ GIT_HTTP_EXPORT_ALL=TRUE \ REQUEST_METHOD=POST \ CONTENT_LENGTH="$NOT_FIT_IN_SSIZE" \ - git http-backend >/dev/null 2>err && + git http-backend </dev/null >/dev/null 2>err && grep "fatal:.*CONTENT_LENGTH" err ' @@ -161,7 +161,7 @@ test_expect_success 'empty CONTENT_LENGTH' ' GIT_HTTP_EXPORT_ALL=TRUE \ REQUEST_METHOD=GET \ CONTENT_LENGTH="" \ - git http-backend <empty_body >act.out 2>act.err && + git http-backend <empty_body >act.out.$test_count 2>act.err.$test_count && verify_http_result "200 OK" '