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/[email protected]/
> (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"
'