remote: fix ssh makedirs race

Closes #1862
This commit is contained in:
Alexander Schepanovski
2019-06-28 15:30:54 +07:00
parent 8c2fa8d00a
commit 0ffd52a836
+8 -1
View File
@@ -1,6 +1,7 @@
import os
import posixpath
import logging
import errno
import stat
from contextlib import contextmanager
@@ -110,7 +111,13 @@ class SSHConnection:
self.makedirs(head)
if tail:
self._sftp.mkdir(path)
try:
self._sftp.mkdir(path)
except IOError as e:
# Since paramiko errors are very vague we need to recheck
# whether it's because path already exists or something else
if e.errno == errno.EACCES or not self.exists(path):
raise
def walk(self, directory, topdown=True):
# NOTE: original os.walk() implementation [1] with default options was