diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-05-01 13:39:53 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-05-01 13:39:53 -0700 |
commit | cf054f817a30cf4a6531548f52cd7d5cbed6f4fc (patch) | |
tree | 1a22fdf3be94217a1427f8728dc1bf3a0e25692e /t | |
parent | Merge branch 'tb/commit-graph-split-strategy' (diff) | |
parent | commit-graph: close descriptors after mmap (diff) | |
download | tgif-cf054f817a30cf4a6531548f52cd7d5cbed6f4fc.tar.xz |
Merge branch 'tb/commit-graph-fd-exhaustion-fix'
The commit-graph code exhausted file descriptors easily when it
does not have to.
* tb/commit-graph-fd-exhaustion-fix:
commit-graph: close descriptors after mmap
commit-graph.c: gracefully handle file descriptor exhaustion
t/test-lib.sh: make ULIMIT_FILE_DESCRIPTORS available to tests
commit-graph.c: don't use discarded graph_name in error
Diffstat (limited to 't')
-rwxr-xr-x | t/t1400-update-ref.sh | 9 | ||||
-rwxr-xr-x | t/t5324-split-commit-graph.sh | 13 | ||||
-rw-r--r-- | t/test-lib.sh | 9 |
3 files changed, 22 insertions, 9 deletions
diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index 48d0d42afd..e1197ac818 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh @@ -1354,15 +1354,6 @@ test_expect_success 'fails with duplicate ref update via symref' ' test_cmp expect actual ' -run_with_limited_open_files () { - (ulimit -n 32 && "$@") -} - -test_lazy_prereq ULIMIT_FILE_DESCRIPTORS ' - test_have_prereq !MINGW,!CYGWIN && - run_with_limited_open_files true -' - test_expect_success ULIMIT_FILE_DESCRIPTORS 'large transaction creating branches does not burst open file limit' ' ( for i in $(test_seq 33) diff --git a/t/t5324-split-commit-graph.sh b/t/t5324-split-commit-graph.sh index 3378ec54cd..4146b82031 100755 --- a/t/t5324-split-commit-graph.sh +++ b/t/t5324-split-commit-graph.sh @@ -387,4 +387,17 @@ test_expect_success '--split=replace replaces the chain' ' graph_read_expect 2 ' +test_expect_success ULIMIT_FILE_DESCRIPTORS 'handles file descriptor exhaustion' ' + git init ulimit && + ( + cd ulimit && + for i in $(test_seq 64) + do + test_commit $i && + test_might_fail run_with_limited_open_files git commit-graph write \ + --split=no-merge --reachable || return 1 + done + ) +' + test_done diff --git a/t/test-lib.sh b/t/test-lib.sh index 13ba00d508..1b221951a8 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1666,6 +1666,15 @@ test_lazy_prereq ULIMIT_STACK_SIZE ' run_with_limited_stack true ' +run_with_limited_open_files () { + (ulimit -n 32 && "$@") +} + +test_lazy_prereq ULIMIT_FILE_DESCRIPTORS ' + test_have_prereq !MINGW,!CYGWIN && + run_with_limited_open_files true +' + build_option () { git version --build-options | sed -ne "s/^$1: //p" |