https://clickhouse-test-reports.s3.yandex.net/8367/333ec2e496f4fe4addd22d5fa7c5c2a499099c57/fuzzer/fuzzer.log#fail1
, path(dir_path + "/" + std::to_string(file_id))
    , key_to_index(max_stored_keys, KeyDeleter(keys_pool))
    , attributes_structure(attributes_structure_)
{
    if (!std::filesystem::create_directories(std::filesystem::path{dir_path}))
    {
        if (std::filesystem::exists(std::filesystem::path{dir_path}))
            LOG_INFO(&Poco::Logger::get("SSDComplexKeyCachePartition::Constructor"), "Using existing directory '{}' for cache-partition", dir_path);
        else
            throw Exception{"Failed to create directories.", ErrorCodes::CANNOT_CREATE_DIRECTORY};
    }
    {
        ProfileEvents::increment(ProfileEvents::FileOpen);
        const std::string filename = path + BIN_FILE_EXT;
        fd = ::open(filename.c_str(), O_RDWR | O_CREAT | O_TRUNC | O_DIRECT, 0666);
        if (fd == -1)
        {
            auto error_code = (errno == ENOENT) ? ErrorCodes::FILE_DOESNT_EXIST : ErrorCodes::CANNOT_OPEN_FILE;
            throwFromErrnoWithPath("Cannot open file " + filename, filename, error_code);
        }
        if (preallocateDiskSpace(fd, max_size * block_size) < 0)
            throwFromErrnoWithPath("Cannot preallocate space for the file " + filename, filename, ErrorCodes::CANNOT_ALLOCATE_MEMORY);
    }
}
SSDComplexKeyCachePartition::~SSDComplexKeyCachePartition()
{
    std::unique_lock lock(rw_lock);
    ::close(fd);
}
size_t SSDComplexKeyCachePartition::appendDefaults(