https://s3.amazonaws.com/clickhouse-test-reports/43986/7249ad407a0824d8c7651d8e03d4e68e1dea0813/stress_test__msan_.html
paths.reserve(checksums.files.size());
    for (const auto & it : checksums.files)
        paths.push_back(fs::path(part->getDataPartStorage().getRelativePath()) / it.first);
    
    auto metadatas = data_part_storage->getSerializedMetadata(paths);
    if (send_part_id)
    {
        String part_id = data_part_storage->getUniqueId();
        writeStringBinary(part_id, out);
    }
    if (send_projections)
    {
        for (const auto & [name, projection] : part->getProjectionParts())
        {
            writeStringBinary(name, out);
            sendPartFromDiskRemoteMeta(projection, out, false, false);
        }
    }
    writeBinary(checksums.files.size(), out);
    for (const auto & it : checksums.files)
    {
        const String & file_name = it.first;
        String file_path_prefix = fs::path(part->getDataPartStorage().getRelativePath()) / file_name;
        
        String metadata_file_path = fs::path(data_part_storage->getDiskPath()) / file_path_prefix;
        fs::path metadata(metadata_file_path);
        if (!fs::exists(metadata))
            throw Exception(ErrorCodes::CORRUPTED_DATA, "Remote metadata '{}' is not exists", file_name);
        if (!fs::is_regular_file(metadata))
            throw Exception(ErrorCodes::CORRUPTED_DATA, "Remote metadata '{}' is not a file", file_name);