On Wed, Jun 12, 2024 at 01:50:27PM +0200, Carlos Martín Nieto wrote: > This rejection requires us to make sure we handle this kind of error > correctly rather than throw away the report in remote-curl and end up > with "Everything up-to-date" due to the lack of report. > > Signed-off-by: Carlos Martín Nieto <cmn@xxxxxxx> > --- > t/t5546-receive-limits.sh | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) I haven't looked at the CGI stuff to know whether or not this behavior can be reasonably emulated without the new Python script you wrote, but a couple of small things in the meantime... This patch's subject line states that it is modifying script t5541, but the patch modifies t5546. I think the latter is correct, and there is just a typo in the subject line, but wanted to make sure I pointed it out regardless. More importantly, this test fails after applying through this patch, but not 4/4. After applying the final patch, it looks like it is still failing for me. I figure that I am probably holding it wrong, but regardless, here is the error message I see on my machine: --- 8< --- + git init /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large Initialized empty Git repository in /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large/.git/ + git -C /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large config receive.maxInputSize 128 + test-tool genrandom foo 10485760 + git add large-file + test_commit large-file + local notick= + local echo=echo + local append= + local author= + local signoff= + local indir= + local tag=light + test 1 != 0 + break + indir= + local file=large-file.t + test -n + echo large-file + git add -- large-file.t + test -z + test_tick + test -z set + test_tick=1112912053 + GIT_COMMITTER_DATE=1112912053 -0700 + GIT_AUTHOR_DATE=1112912053 -0700 + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE + git commit -m large-file [master 03a3078] large-file Author: A U Thor <author@xxxxxxxxxxx> 2 files changed, 1 insertion(+) create mode 100644 large-file create mode 100644 large-file.t + git tag large-file + test_must_fail git push --porcelain http://127.0.0.1:5546/error_too_large HEAD:refs/tags/will-fail + _test_ok= + test_must_fail_acceptable git push --porcelain http://127.0.0.1:5546/error_too_large HEAD:refs/tags/will-fail + test git = env + return 0 + git push --porcelain http://127.0.0.1:5546/error_too_large HEAD:refs/tags/will-fail Enumerating objects: 8, done. Counting objects: 100% (8/8), done. Delta compression using up to 20 threads Compressing objects: 100% (6/6), done. error: RPC failed; curl 55 Send failure: Broken pipe send-pack: unexpected disconnect while reading sideband packet Writing objects: 100% (8/8), 10.00 MiB | 34.04 MiB/s, done. Total 8 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) fatal: the remote end hung up unexpectedly fatal: the remote end hung up unexpectedly error: failed to push some refs to 'http://127.0.0.1:5546/error_too_large' + exit_code=1 + test 1 -eq 0 + test_match_signal 13 1 + test 1 = 141 + test 1 = 269 + return 1 + test 1 -gt 129 + test 1 -eq 127 + test 1 -eq 126 + return 0 + test_must_fail git -C /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large rev-parse --verify refs/tags/will-fail + _test_ok= + test_must_fail_acceptable git -C /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large rev-parse --verify refs/tags/will-fail + test git = env + return 0 + git -C /home/ttaylorr/src/git/t/trash directory.t5546-receive-limits/httpd/www/error_too_large rev-parse --verify refs/tags/will-fail fatal: Needed a single revision + exit_code=128 + test 128 -eq 0 + test_match_signal 13 128 + test 128 = 141 + test 128 = 269 + return 1 + test 128 -gt 129 + test 128 -eq 127 + test 128 -eq 126 + return 0 + cat + test_cmp expect actual + test 2 -ne 2 + eval diff -u "$@" + diff -u expect actual --- expect 2024-06-12 21:48:50.005929827 +0000 +++ actual 2024-06-12 21:48:49.677930723 +0000 @@ -1,3 +0,0 @@ -To http://127.0.0.1:5546/error_too_large -! HEAD:refs/tags/will-fail [remote rejected] (unpacker error) -Done error: last command exited with $?=1 not ok 18 - reject too-large push over HTTP --- >8 --- Thanks, Taylor