[tor-commits] [chutney/master] remove stale lock file for crashed Tor
nickm at torproject.org
nickm at torproject.org
Mon Feb 24 19:42:23 UTC 2014
commit 93c06edf52eacb90f5950815dcb234ee13324703
Author: Qingping Hou <dave2008713 at gmail.com>
Date: Mon Feb 17 23:01:07 2014 -0500
remove stale lock file for crashed Tor
---
lib/chutney/TorNet.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/lib/chutney/TorNet.py b/lib/chutney/TorNet.py
index 77e768a..74ec087 100644
--- a/lib/chutney/TorNet.py
+++ b/lib/chutney/TorNet.py
@@ -466,6 +466,14 @@ class LocalNodeController(NodeController):
return
os.kill(pid, sig)
+ def cleanup_lockfile(self):
+ lf = self._env['lockfile']
+ if self.isRunning() or (not os.path.exists(lf)):
+ return
+ print 'Removing stale lock file for {0} ...'.format(
+ self._env['nick'])
+ os.remove(lf)
+
@@ -547,6 +555,9 @@ class TorEnviron(chutney.Templating.Environ):
def _get_torrc_template_path(self, my):
return [ os.path.join(my['chutney_dir'], 'torrc_templates') ]
+ def _get_lockfile(self, my):
+ return os.path.join(self['dir'], 'lock')
+
class Network(object):
"""A network of Tor nodes, plus functions to manipulate them
@@ -624,6 +635,9 @@ class Network(object):
for n in xrange(15):
time.sleep(1)
if all(not c.isRunning() for c in controllers):
+ # check for stale lock file when Tor crashes
+ for c in controllers:
+ c.cleanup_lockfile()
return
sys.stdout.write(".")
sys.stdout.flush()
More information about the tor-commits
mailing list