-
Type: Technical Debt
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
5
In the MongoDB code, we can see that a few categories are always enabled:
if (shouldLog(::mongo::logv2::LogComponent::kStorageRecovery, logv2::LogSeverity::Debug(3))) { ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress,recovery],"; } else { ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress],"; }
This means that the messages associated with the following categories should always be displayed:
recovery_progress, checkpoint_progress, compact_progress
And optionally:
recovery
Since they should always be displayed, we need to revisit the messages generated by WT related to those categories.
To better understand the potential issue, let's take an example with the recovery_progress option:
- The recovery_progress option is associated with the WT_VERB_RECOVERY_PROGRESS verbose category in WT.
- This is an example of a message related to this category:
__wt_verbose(session, WT_VERB_RECOVERY_PROGRESS, "Rollback to stable has been running for %" PRIu64 " seconds and has inspected %" PRIu64 " files. For more detailed logging, enable WT_VERB_RTS", time_diff, rollback_count);
* The wt_verbose function will print a message with the level WT_VERBOSE_LEVEL_DEFAULT which is WT_VERBOSE_DEBUG.
- As part of
SERVER-61744, the WT_VERBOSE_DEBUG is associated with logv2::LogSeverity::Debug which may be masked at MongoDB level depending on the required verbosity level.
Suggestion solution:
To avoid this, we could:
- Generate those messages with a different severity level that cannot be masked, i.e through wt_verbose_info.
- Could we change the MongoDB code and associate the value 1 to each category? I am not sure this is a great solution as MongoDB is not the only one using WiredTiger.