https://s3.amazonaws.com/clickhouse-test-reports/0/8ea7b9c9784f7014dccb4fe0dfd269265126a30d/stress_test__msan_.html

Post-processed traces: https://pastila.nl/?0006a09d/4a3864799d8b23c3998deeefcdca5d8f
Post-processed traces without boring threads: https://pastila.nl/?0006a09d/f342d95a823d513df62d68a5d8a1a50b

Explanation: https://pastila.nl/?000fcc82/3a48f372d3410a8691d50cb5647b2c20
Container processes;
    size_t max_size = 0;        
    
    UserToQueries user_to_queries;
    
    QueryPriorities priorities;
    
    ThrottlerPtr total_network_throttler;
    
    QueryStatus * tryGetProcessListElement(const String & current_query_id, const String & current_user);
    
    size_t max_insert_queries_amount = 0;
    
    size_t max_select_queries_amount = 0;
    
    QueryKindAmounts query_kind_amounts;
    void increaseQueryKindAmount(const IAST::QueryKind & query_kind);
    void decreaseQueryKindAmount(const IAST::QueryKind & query_kind);
    QueryAmount getQueryKindAmount(const IAST::QueryKind & query_kind) const;
public:
    using EntryPtr = std::shared_ptr<ProcessListEntry>;
    /** Register running query. Returns refcounted object, that will remove element from list in destructor.
      * If too many running queries - wait for not more than specified (see settings) amount of time.
      * If timeout is passed - throw an exception.
      * Don't count KILL QUERY queries.
      */
    EntryPtr insert(const String & query_, const IAST * ast, ContextPtr query_context);
    
    size_t size() const { return processes.size(); }