From 94a84b6f5adad75b3cbf956447ee5d9caf1018d2 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 27 Jan 2019 14:27:57 +0800 Subject: [PATCH] test: listen on random port in tests which start ceph-mon See-also: http://tracker.ceph.com/issues/36737 Signed-off-by: Kefu Chai --- qa/standalone/ceph-helpers.sh | 11 +++++++++++ src/test/osd/safe-to-destroy.sh | 2 +- src/test/smoke.sh | 11 ++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) 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 -- 2.39.5