Projects
home:pandora:RobinOS23
git
_service:download_src_package:0001-t-lib-httpd-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:download_src_package:0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch of Package git
From aedeaaf788bd8a7fc5a1887196b6f6d8a5c31362 Mon Sep 17 00:00:00 2001 From: Todd Zullinger <tmz@pobox.com> Date: Sun, 21 Aug 2022 13:49:57 -0400 Subject: [PATCH] t/lib-httpd: try harder to find a port for apache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running multiple builds concurrently, tests which run daemons, like apache httpd, sometimes conflict with each other, leading to spurious failures: ++ /usr/sbin/httpd -d '/tmp/git-t.ck9I/trash directory.t9118-git-svn-funky-branch-names/httpd' \ -f /builddir/build/BUILD/git-2.37.2/t/lib-httpd/apache.conf -DDAV -DSVN -c 'Listen 127.0.0.1:9118' \ -k start (98)Address already in use: AH00072: make_sock: could not bind to address 127.0.0.1:9118 no listening sockets available, shutting down AH00015: Unable to open logs ++ test 1 -ne 0 Try a bit harder to find an open port to use to avoid these intermittent failures. If we fail to start httpd, increment the port number and try again. By default, we make 3 attempts. This may be overridden by setting GIT_TEST_START_HTTPD_TRIES to a different value. Helped-by: Ondřej Pohořelský <opohorel@redhat.com> Signed-off-by: Todd Zullinger <tmz@pobox.com> --- t/lib-httpd.sh | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 1f6b9b08d1..9279dcd659 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -175,19 +175,26 @@ prepare_httpd() { } start_httpd() { - prepare_httpd >&3 2>&4 - test_atexit stop_httpd - "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \ - -f "$TEST_PATH/apache.conf" $HTTPD_PARA \ - -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \ - >&3 2>&4 - if test $? -ne 0 - then - cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null - test_skip_or_die GIT_TEST_HTTPD "web server setup failed" - fi + i=0 + while test $i -lt ${GIT_TEST_START_HTTPD_TRIES:-3} + do + i=$(($i + 1)) + prepare_httpd >&3 2>&4 + say >&3 "Starting httpd on port $LIB_HTTPD_PORT" + "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \ + -f "$TEST_PATH/apache.conf" $HTTPD_PARA \ + -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \ + >&3 2>&4 + test $? -eq 0 && return + LIB_HTTPD_PORT=$(($LIB_HTTPD_PORT + 1)) + export LIB_HTTPD_PORT + # clean up modules symlink, prepare_httpd will re-create it + rm -f "$HTTPD_ROOT_PATH/modules" + done + cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null + test_skip_or_die GIT_TEST_HTTPD "web server setup failed" } stop_httpd() {
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2