From: Kefu Chai Date: Sun, 27 Jan 2019 06:27:57 +0000 (+0800) Subject: test: listen on random port in tests which start ceph-mon X-Git-Tag: v14.1.0~250^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=94a84b6f5adad75b3cbf956447ee5d9caf1018d2;p=ceph-ci.git test: listen on random port in tests which start ceph-mon See-also: http://tracker.ceph.com/issues/36737 Signed-off-by: Kefu Chai --- diff --git a/qa/standalone/ceph-helpers.sh b/qa/standalone/ceph-helpers.sh index 7b85b1f3bf8..f38d1d8fb9d 100755 --- a/qa/standalone/ceph-helpers.sh +++ b/qa/standalone/ceph-helpers.sh @@ -392,6 +392,17 @@ function test_kill_daemons() { teardown $dir || return 1 } +# +# return a random TCP port which is not used yet +# +# please note, there could be racing if we use this function for +# a free port, and then try to bind on this port. +# +function get_unused_port() { + local ip=127.0.0.1 + python3 -c "import socket; s=socket.socket(); s.bind(('$ip', 0)); print(s.getsockname()[1]); s.close()" +} + ####################################################################### ## diff --git a/src/test/osd/safe-to-destroy.sh b/src/test/osd/safe-to-destroy.sh index f03a235f7dd..670e5ad7509 100755 --- a/src/test/osd/safe-to-destroy.sh +++ b/src/test/osd/safe-to-destroy.sh @@ -8,7 +8,7 @@ function run() { local dir=$1 shift - export CEPH_MON="127.0.0.1:7227" # git grep '\<7227\>' : there must be only one + export CEPH_MON="127.0.0.1:$(get_unused_port)" export CEPH_ARGS CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " CEPH_ARGS+="--mon-host=$CEPH_MON " diff --git a/src/test/smoke.sh b/src/test/smoke.sh index d6b4cb8a8f9..bad1d05924b 100755 --- a/src/test/smoke.sh +++ b/src/test/smoke.sh @@ -2,11 +2,13 @@ source $CEPH_ROOT/qa/standalone/ceph-helpers.sh +mon_port=$(get_unused_port) + function run() { local dir=$1 shift - export CEPH_MON="127.0.0.1:7224" # git grep '\<7224\>' : there must be only one + export CEPH_MON="127.0.0.1:$mon_port" export CEPH_ARGS CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none " CEPH_ARGS+="--mon-host=$CEPH_MON " @@ -34,10 +36,9 @@ function TEST_minimal() { function TEST_multimon() { local dir=$1 - - MONA="127.0.0.1:7224" # git grep '\<7224\>' : there must be only one - MONB="127.0.0.1:7225" # git grep '\<7225\>' : there must be only one - MONC="127.0.0.1:7226" # git grep '\<7226\>' : there must be only one + MONA="127.0.0.1:$((mon_port++))" + MONB="127.0.0.1:$((mon_port++))" + MONC="127.0.0.1:$((mon_port++))" run_mon $dir a --public-addr $MONA run_mon $dir b --public-addr $MONB