From 4e7a761d16b9c802fa42a7f768ca5f19cb07a69c Mon Sep 17 00:00:00 2001 From: dwight Date: Tue, 24 Aug 2010 22:16:00 -0400 Subject: [PATCH] SERVER-1671 pair1.js failing --- db/instance.cpp | 12 ++++++++++++ db/query.cpp | 1 - 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/db/instance.cpp b/db/instance.cpp index 769b911d10b..e436ba2f9ca 100644 --- a/db/instance.cpp +++ b/db/instance.cpp @@ -497,6 +497,7 @@ namespace mongo { if( ntoreturn ) ss << " ntoreturn:" << ntoreturn; + time_t start; int pass = 0; bool exhaust = false; QueryResult* msgdata; @@ -509,6 +510,17 @@ namespace mongo { catch ( GetMoreWaitException& ) { exhaust = false; massert(13073, "shutting down", !inShutdown() ); + if( pass == 0 ) { + start = time(0); + } + else { + if( time(0) - start >= 4 ) { + // after about 4 seconds, return. this is a sanity check. pass stops at 1000 normally + // for DEV this helps and also if sleep is highly inaccurate on a platform. we want to + // return occasionally so slave can checkpoint. + pass = 10000; + } + } pass++; DEV sleepmillis(20); diff --git a/db/query.cpp b/db/query.cpp index 5a3ee585fee..6aa8a04712a 100644 --- a/db/query.cpp +++ b/db/query.cpp @@ -324,7 +324,6 @@ namespace mongo { while ( 1 ) { if ( !c->ok() ) { -// log() << "TEMP Tailable : " << c->tailable() << ' ' << (queryOptions & QueryOption_AwaitData) << endl; if ( c->tailable() ) { /* when a tailable cursor hits "EOF", ok() goes false, and current() is null. however advance() can still be retries as a reactivation attempt. when there is new data, it will