fixes for handling failed chdir in spawners

This commit is contained in:
Min RK
2016-03-07 15:12:30 +01:00
parent 82643adfb6
commit 9af103c673

View File

@@ -11,7 +11,7 @@ import signal
import sys import sys
import grp import grp
from subprocess import Popen from subprocess import Popen
from tempfile import TemporaryDirectory from tempfile import mkdtemp
from tornado import gen from tornado import gen
from tornado.ioloop import IOLoop, PeriodicCallback from tornado.ioloop import IOLoop, PeriodicCallback
@@ -328,12 +328,13 @@ def _try_setcwd(path):
try: try:
os.chdir(path) os.chdir(path)
except OSError as e: except OSError as e:
exc = e # break exception instance out of except scope
print("Couldn't set CWD to %s (%s)" % (path, e), file=sys.stderr) print("Couldn't set CWD to %s (%s)" % (path, e), file=sys.stderr)
path, _ = os.path.split(path) path, _ = os.path.split(path)
else: else:
return return
print("Couldn't set CWD at all (%s), using temp dir" % e, file=sys.stderr) print("Couldn't set CWD at all (%s), using temp dir" % exc, file=sys.stderr)
td = TemporaryDirectory().name td = mkdtemp()
os.chdir(td) os.chdir(td)