We use Clickhouse version 22.3.3.44, and met with with some wrong behaviour - 
queries "ALTER TABLE ... MODIFY COMMENT ... " does not work on ReplicatedMergeTree engine.

Bug reproduce script:
```
CREATE TABLE sandbox.test__calendar
(
    `dttm` DateTime COMMENT 'date and time',
    `timestamp` Int64 COMMENT 'event timestamp',
    `year_num` Int32 COMMENT 'year number'
)
ENGINE = ReplicatedMergeTree() PARTITION BY year_num ORDER BY timestamp
COMMENT 'Comment text for test table';

SELECT comment FROM system.tables WHERE name like 'test__calendar'; -- 1 row selected with correct comment text

ALTER TABLE sandbox.test__calendar MODIFY COMMENT 'Some new more detailed text of comment';

SELECT comment FROM system.tables WHERE name like 'test__calendar'; -- 1 row selected, but with OLD(!) comment text
```

Maybe it will be helpfull, ALTER TABLE query returns such result:
```
host            |status|error|num_hosts_remaining|num_hosts_active|
----------------+------+----+-----------------------+------------------+
10.7.179.41     |     0|    |                      1|                 0|
ak1-st-data-01  |     0|    |                      0|                 0|
```
ops.emplace_back(zkutil::makeRemoveRequest(remote_replica_path + "/max_processed_insert_time", -1));
        ops.emplace_back(zkutil::makeRemoveRequest(remote_replica_path + "/min_unprocessed_insert_time", -1));
        ops.emplace_back(zkutil::makeRemoveRequest(remote_replica_path + "/metadata_version", -1));
        ops.emplace_back(zkutil::makeRemoveRequest(remote_replica_path + "/mutation_pointer", -1));
        Coordination::Responses res;
        code = zookeeper->tryMulti(ops, res);
        if (code != Coordination::Error::ZOK)
            LOG_WARNING(logger, "Cannot quickly remove nodes without children: {} (replica: {}). Will remove recursively.",
                        Coordination::errorMessage(code), remote_replica_path);
        
        zookeeper->tryRemoveRecursive(remote_replica_path);
    }
    
    if (zookeeper->exists(remote_replica_path))
        LOG_ERROR(logger, "Replica was not completely removed from ZooKeeper, {} still exists and may contain some garbage.", remote_replica_path);
    
    Strings replicas;
    if (Coordination::Error::ZOK != zookeeper->tryGetChildren(zookeeper_path + "/replicas", replicas) || !replicas.empty())
        return;
    LOG_INFO(logger, "{} is the last replica, will remove table", remote_replica_path);
    /** At this moment, another replica can be created and we cannot remove the table.
      * Try to remove /replicas node first. If we successfully removed it,
      * it guarantees that we are the only replica that proceed to remove the table
      * and no new replicas can be created after that moment (it requires the existence of /replicas node).
      * and table cannot be recreated with new /replicas node on another servers while we are removing data,
      * because table creation is executed in single transaction that will conflict with remaining nodes.
      */