[patch iwhd] Fix a race in t/mongo-restart
Pete Zaitcev
zaitcev at redhat.com
Mon Oct 24 22:19:01 UTC 2011
Ian McLeod found that on his system mongod takes a while from the moment
it stopped listening until the time it releases the data lock, so the
newly started mongo fails to lock and exits. Then, build-time checks fail.
The fix is to poll of mongo actually exiting, and not merely stopping
listening. This is made simple by knowing the right PID. Hopefuly it's
not reused too quickly.
---
t/mongo-restart | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/t/mongo-restart b/t/mongo-restart
index 1447952..eb0da4f 100755
--- a/t/mongo-restart
+++ b/t/mongo-restart
@@ -64,8 +64,8 @@ creation_evokes_201 b1
kill $mongo_pid
-# Wait for mongo to stop listening.
-no_mongo() { mongo localhost:$m_port < /dev/null; test $? != 0; }
+# Wait for mongo to disappear. Takes a while sometimes.
+no_mongo() { kill -s 0 $mongo_pid 2> /dev/null; test $? != 0; }
wait_for .1 50 no_mongo || fail_ failed to kill mongo
mongod --port $m_port --pidfilepath mongod/pid --dbpath mongod &
More information about the iwhd-devel
mailing list