Python 错误9错误文件描述符检测错误2
我当时正在谷歌colab中为目标检测开发Detectron2,它工作得很成功,但我不得不转向使用CentOS 7.4和Conda的群集HPC。我已经安装了所有的需求,目前运行脚本时没有出现错误,但是在DefaultTrainer类的函数resume\u或\u load中,它被阻塞在一个有限睡眠循环中。当我停止它时,会出现这种回溯Python 错误9错误文件描述符检测错误2,python,conda,centos7,detectron,Python,Conda,Centos7,Detectron,我当时正在谷歌colab中为目标检测开发Detectron2,它工作得很成功,但我不得不转向使用CentOS 7.4和Conda的群集HPC。我已经安装了所有的需求,目前运行脚本时没有出现错误,但是在DefaultTrainer类的函数resume\u或\u load中,它被阻塞在一个有限睡眠循环中。当我停止它时,会出现这种回溯 Traceback (most recent call last): File "new_train.py", line 138, in &
Traceback (most recent call last):
File "new_train.py", line 138, in <module>
trainer.resume_or_load(resume=False)
File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/detectron2/engine/defaults.py",
line 353, in resume_or_load
checkpoint = self.checkpointer.resume_or_load(self.cfg.MODEL.WEIGHTS, resume=resume)
File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/fvcore/common/checkpoint.py", line
215, in resume_or_load
return self.load(path, checkpointables=[])
File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/fvcore/common/checkpoint.py", line
140, in load
path = self.path_manager.get_local_path(path)
File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/iopath/common/file_io.py", line
1109, in get_local_path
path, force=force, **kwargs
File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/iopath/common/file_io.py", line
764, in _get_local_path
with file_lock(cached):
File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site-
packages/portalocker/utils.py", line 160, in __enter__
return self.acquire()
File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site-packages/portalocker/utils.py", line 239, in acquire
for _ in self._timeout_generator(timeout, check_interval):
File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site-
packages/portalocker/utils.py", line 152, in _timeout_generator
time.sleep(max(0.001, (i * check_interval) - since_start_time))
KeyboardInterrupt
当脚本尝试从model_zoo下载预先训练的文件并在本地驱动器的文件中使用fcntl.flock()函数时,会发生此错误。此函数接收io.Textiowrapper对象,并正确描述本地驱动器中的现有文件,并锁定非阻塞和独占标志。我已经检查了文件权限,我有读写权限
我已经搜索过了,但是我没有找到它发生的原因,有人知道我如何修复这个错误吗
多谢各位
PD:另外,我通过安装Python3.7.9、3.7.10和3.9.4进行了尝试,出现了相同的错误后端文件系统是什么?(
hpcfs
听起来可能有点…非典型)。您可以对同一文件系统上的文件使用flock
shell命令吗?(另外,确保在抛出错误时文件实际上仍处于打开状态,这意味着从Python进程的角度来看,/proc/self/fd/9
是存在的——例如,您可以从pdb
中进行检查;存储fd编号并在文件本身关闭后尝试使用它是最简单和最明显的获取错误消息的方法,并且不要求主机或文件系统有任何奇怪或不同)…如果我们忽略操作系统错误,挂起试图聚集文件通常意味着其他文件已经锁定了该文件。弄清楚“其他东西”是什么is--这就是操作系统级工具(如fuser
)的用途。当我对文件系统中的文件尝试命令flock-w 20 filename
时,我得到一个错误flock:bad number
。此文件为空
OSError [errno 9]: Bad file descriptor