When I queried `system.metrics` table, I found some negative values which hint to some potential internal overflows.

```
SELECT *
FROM system.metrics
FORMAT Vertical

...

Row 31:
───────
metric:      MemoryTrackingInBackgroundProcessingPool
value:       -580863171
description: Total amount of memory (bytes) allocated in background processing pool (that is dedicated for backround merges, mutations and fetches). Note that this value may include a drift when the memory was allocated in a context of background processing pool and freed in other context or vice-versa. This happens naturally due to caches for tables indexes and doesn't indicate memory leaks.

Row 32:
───────
metric:      MemoryTrackingInBackgroundMoveProcessingPool
value:       0
description: Total amount of memory (bytes) allocated in background processing pool (that is dedicated for backround moves). Note that this value may include a drift when the memory was allocated in a context of background processing pool and freed in other context or vice-versa. This happens naturally due to caches for tables indexes and doesn't indicate memory leaks.

Row 33:
───────
metric:      MemoryTrackingInBackgroundSchedulePool
value:       -4461308831
description: Total amount of memory (bytes) allocated in background schedule pool (that is dedicated for bookkeeping tasks of Replicated tables).

...

56 rows in set. Elapsed: 0.003 sec.
```

Server version: 20.8.2.3.
mutable std::shared_ptr<const DiskSelector> merge_tree_disk_selector;
    
    mutable std::shared_ptr<const StoragePolicySelector> merge_tree_storage_policy_selector;
    std::optional<MergeTreeSettings> merge_tree_settings;   
    std::optional<MergeTreeSettings> replicated_merge_tree_settings;   
    std::atomic_size_t max_table_size_to_drop = 50000000000lu; 
    std::atomic_size_t max_partition_size_to_drop = 50000000000lu; 
    String format_schema_path;                              
    ActionLocksManagerPtr action_locks_manager;             
    std::optional<SystemLogs> system_logs;                  
    std::optional<StorageS3Settings> storage_s3_settings;   
    RemoteHostFilter remote_host_filter; 
    std::optional<TraceCollector> trace_collector;        
    std::optional<NamedSessions> named_sessions;        
    
    
    std::unique_ptr<Clusters> clusters;
    ConfigurationPtr clusters_config;                        
    mutable std::mutex clusters_mutex;                        
#if USE_EMBEDDED_COMPILER
    std::shared_ptr<CompiledExpressionCache> compiled_expression_cache;
#endif
    bool shutdown_called = false;
    Stopwatch uptime_watch;
    Context::ApplicationType application_type = Context::ApplicationType::SERVER;
    
    std::vector<std::unique_ptr<ShellCommand>> bridge_commands;
    Context::ConfigReloadCallback config_reload_callback;
    ContextShared()