diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp index 701fe972f0..b71ed41227 100644 --- a/fdbserver/Knobs.cpp +++ b/fdbserver/Knobs.cpp @@ -81,6 +81,7 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs) { init( TLOG_DEGRADED_DELAY_COUNT, 5 ); init( TLOG_DEGRADED_DURATION, 5.0 ); init( TLOG_IGNORE_POP_AUTO_ENABLE_DELAY, 300.0 ); + init( TXS_POPPED_MAX_DELAY, 1.0 ); if ( randomize && BUGGIFY ) TXS_POPPED_MAX_DELAY = deterministicRandom()->random01(); // disk snapshot max timeout, to be put in TLog, storage and coordinator nodes init( SNAP_CREATE_MAX_TIMEOUT, 300.0 ); diff --git a/fdbserver/Knobs.h b/fdbserver/Knobs.h index 33620ea25d..39d9abc85e 100644 --- a/fdbserver/Knobs.h +++ b/fdbserver/Knobs.h @@ -83,6 +83,7 @@ public: int DISK_QUEUE_MAX_TRUNCATE_BYTES; // A truncate larger than this will cause the file to be replaced instead. int TLOG_DEGRADED_DELAY_COUNT; double TLOG_DEGRADED_DURATION; + double TXS_POPPED_MAX_DELAY; // Data distribution queue double HEALTH_POLL_TIME; diff --git a/fdbserver/TagPartitionedLogSystem.actor.cpp b/fdbserver/TagPartitionedLogSystem.actor.cpp index 63a5f11c6c..2065166b27 100644 --- a/fdbserver/TagPartitionedLogSystem.actor.cpp +++ b/fdbserver/TagPartitionedLogSystem.actor.cpp @@ -1093,7 +1093,12 @@ struct TagPartitionedLogSystem : ILogSystem, ReferenceCounted maxGetPoppedDuration = delay(SERVER_KNOBS->TXS_POPPED_MAX_DELAY); + wait( waitForAll(poppedReady) || maxGetPoppedDuration ); + + if(maxGetPoppedDuration.isReady()) { + TraceEvent(SevWarnAlways, "PoppedTxsNotReady", self->dbgid); + } Version maxPopped = 1; for(auto &it : poppedFutures) {