陈旧的 NFS 文件句柄

陈旧的 NFS 文件句柄

我们的 Azure 文件共享使用类似

我们看到一个特定文件上的 NFS 文件句柄已经过时,每次我们要求程序创建和写入该文件时,我们都会看到程序终止并报告我们 stale NFS file handle

但在已安装的文件共享上使用 UNIX 实用程序创建文件 echo "hello" > the-file.txt似乎可行。

这里有什么问题?除此文件外,所有其他文件均已创建。

相关代码如下golang,如下所示。

    ...
    s.csvFile, err = snowflakeFile(filePath, data)
    if err != nil {
        return err
    }
    defer s.cleanup()
    ...
func snowflakeFile(path string, data EventData) (*os.File, error) {
    filename := fmt.Sprintf("%s-%s-%s.csv", data.Type, md5Sum(data.RemoteServer), filepath.Base(path))
    filename = filepath.Join(config.Fetch("CSV_DIR"), filename)
    return os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
}
func (b *base) cleanup() error {
    err := b.csvFile.Close()
    if err != nil {
        log.Errorf("[%s] Error closing the file handler %s: %+v", b.Type, b.csvFile.Name(), err)
    }
    return err
}

相关内容