gpt4 book ai didi

java - 删除了 Linux 标识符

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:55 25 4
gpt4 key购买 nike

我在运行下面一段 Java 代码时遇到了一个有趣的问题:

    File.createTempFile("temp.cnt.ent", "cnt.feat.tmp", directory);

抛出以下异常:

    Exception in thread "main" java.io.IOException: Identifier removed
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)

我以前从来没有遇到过这个问题,谷歌似乎对我来说也没什么用。系统运行Scientific Linux release 5.8 (Linux 2.6.18-274.3.1.el5 x86_64),Java版本为

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)

文件系统 (Lustre) 有 80TB 的可用空间。

非常感谢任何建议。

最佳答案

您遇到了各种实例之间的同步错误。 Lustre 不支持文件锁定,这可能是 java.io.UnixFileSystem.createFileExclusively 用来避免并发问题的方法。 (我说“可能”是因为它似乎没有被记录在任何地方。)

如果没有锁定,文件操作相互干扰只是时间问题。减少实例数量不是解决方案,因为它只会降低发生这种情况的可能性。

我相信解决方案是确保每个实例都在不同的子目录中创建文件

关于java - 删除了 Linux 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com