While debugging another ticket I noticed the following WT connection string is being used by MongoDB:
2019-05-29T04:15:12.786+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=7272M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),verbose=(checkpoint_progress),
This comes from the following string generation code in WiredTigerKVEngine::WiredTigerKVEngine():
ss << "verbose=(recovery_progress),"; ss << "verbose=(checkpoint_progress),"; if (shouldLog(::mongo::logger::LogComponent::kStorageRecovery, logger::LogSeverity::Debug(3))) { ss << "verbose=(recovery),"; }
If a configuration option is repeated, verbose=(recovery_progress),verbose=(checkpoint_progress), the last option overwrites the prior options.
So, in this case, we would never put verbose output for recovery-progress. If the above if-condition is true "verbose=(recovery)" will overwrite other verbose types.
It is best to construct a verbose option string of the following form:
verbose=[recovery_progress,checkpoint_progress,recovery]
It is worthwhile evaluating if there are other WT options that might be getting overwritten and ignored like the above case.
- is depended on by
-
SERVER-39881 Enable verbose compact logging
- Closed