VisualDL icon indicating copy to clipboard operation
VisualDL copied to clipboard

[Bug]多卡多进程导致的重复 makedirs 报错

Open ShaneTian opened this issue 4 years ago • 3 comments

https://github.com/PaddlePaddle/VisualDL/blob/de2ec2ea839a23fa7269f3f896f283fa09498ea7/visualdl/utils/dir.py#L34 会造成,如果两个进程同时判断了 CONF_HOME 不存在,那么都会 makedirs,就会报错

Traceback (most recent call last):
  File "./train.py", line 20, in <module>
    from visualdl import LogWriter
  File "/usr/local/lib/python3.7/site-packages/visualdl/__init__.py", line 25, in <module>
    init_vdl_config()
  File "/usr/local/lib/python3.7/site-packages/visualdl/utils/dir.py", line 34, in init_vdl_config
    os.makedirs(CONF_HOME)
  File "/usr/local/lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/root/.visualdl/conf'

经常需要在 train.py 头部 import visualdl,这时是不区分进程的

ShaneTian avatar Mar 24 '21 02:03 ShaneTian

感谢您的问题,目前解决方式是先自行mkdir新目录,或者在开启子进程之前调用,我们会修复此问题。

ShenYuhan avatar Mar 24 '21 07:03 ShenYuhan

我也遇到了同样的问题,请问下这个问题在哪个版本可以修复?

xiaolao avatar Nov 22 '21 07:11 xiaolao

你好,这个问题我们已经修复,在PR中了,下个小版本可以合入,你可以先试着参照https://github.com/PaddlePaddle/VisualDL/pull/1030 这个改一下本地的源码。

rainyfly avatar Nov 22 '21 07:11 rainyfly