[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