On Sat, Dec 29, 2018 at 10:34:50AM +0800, Hou Tao wrote: > When running xfstests under KVM VM and the load of host is high, > only delaying 1s and checking the readiness of server are not > enough, and the test case will fail early. > > Fix it by repeatedly checking the readiness signal until it's found, > or the server exits. > > Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> > --- > tests/generic/131 | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/tests/generic/131 b/tests/generic/131 > index d7c146ae..1af86e77 100755 > --- a/tests/generic/131 > +++ b/tests/generic/131 > @@ -37,13 +37,20 @@ TESTFILE=$TEST_DIR/lock_file > src/locktest $TESTFILE 2>&1 > $TEST_DIR/server.out & > locktest_pid1=$! > > -sleep 1 > +while true; do > + sleep 1 Looks like we'll loop forever if the locktest process is there but fails to print out the server port due to random reasons. I think it's better to retry N times and give up if the server is still not ready. Thanks, Eryu > > -PORT=$(cat $TEST_DIR/server.out | grep "^server port: " | awk '{print $3}') > -if [ -z $PORT ]; then > - echo "Could not get server port" > - exit 1 > -fi > + PORT=$(cat $TEST_DIR/server.out | grep "^server port: " | awk '{print $3}') > + if [ -n "$PORT" ]; then > + break > + fi > + > + # check the existence of server process > + if ! kill -s 0 $locktest_pid1 >/dev/null 2>&1; then > + echo "Could not get server port" > + exit 1 > + fi > +done > > # Start the client > src/locktest -p $PORT -h localhost $TESTFILE 2>&1 > $TEST_DIR/client.out > -- > 2.16.2.dirty >