https://play.clickhouse.com/play?user=play#c2VsZWN0IAp0b1N0YXJ0T2ZEYXkoY2hlY2tfc3RhcnRfdGltZSkgYXMgZCwKY291bnQoKSwgIGdyb3VwVW5pcUFycmF5KHB1bGxfcmVxdWVzdF9udW1iZXIpLCAgYW55KHJlcG9ydF91cmwpCmZyb20gY2hlY2tzIHdoZXJlICcyMDIyLTA2LTAxJyA8PSBjaGVja19zdGFydF90aW1lIGFuZCB0ZXN0X25hbWUgbGlrZSAnJTAyNDgxX2FzeW5jX2luc2VydF9kZWR1cCUnIGFuZCB0ZXN0X3N0YXR1cyBpbiAoJ0ZBSUwnLCAnRkxBS1knKSBncm91cCBieSBkIG9yZGVyIGJ5IGQgZGVzYw==

Example: https://s3.amazonaws.com/clickhouse-test-reports/44202/ec09a66fbb074fcccfae4a743106d5e7c3b64e26/stateless_tests__debug__s3_storage__[3/6].html
if (!zookeeper->tryGet(quorum_path, value, nullptr, event))
                break;
            LOG_TRACE(log, "Quorum node {} still exists, will wait for updates", quorum_path);
            ReplicatedMergeTreeQuorumEntry quorum_entry(value);
            
            if (quorum_entry.part_name != part_name)
                break;
            if (!event->tryWait(quorum_timeout_ms))
                throw Exception("Timeout while waiting for quorum", ErrorCodes::TIMEOUT_EXCEEDED);
            LOG_TRACE(log, "Quorum {} for part {} updated, will check quorum node still exists", quorum_path, part_name);
        }
        
        
        Coordination::Stat stat;
        String value;
        if (!zookeeper->tryGet(storage.replica_path + "/is_active", value, &stat)
            || stat.version != is_active_node_version)
            throw Exception("Replica become inactive while waiting for quorum", ErrorCodes::NO_ACTIVE_REPLICAS);
    }
    catch (...)
    {
        
        
        throw Exception("Unknown status, client must retry. Reason: " + getCurrentExceptionMessage(false),
            ErrorCodes::UNKNOWN_STATUS_OF_INSERT);
    }
    LOG_TRACE(log, "Quorum '{}' for part {} satisfied", quorum_path, part_name);
}
template<bool async_insert>
String ReplicatedMergeTreeSinkImpl<async_insert>::quorumLogMessage(size_t replicas_num) const