Following the commit history looks like 87d3370 is the root cause of fabric/fabric#2241
Local runner is not calling their parent stop() but it's calling it's propper stop() method, thus making the timer thread is never cancelled.
According to this commnet calling the parent stop() should solve this problem.
|
def stop(self): |
|
# If we opened a PTY for child communications, make sure to close() it, |
|
# otherwise long-running Invoke-using processes exhaust their file |
|
# descriptors eventually. |
|
if self.using_pty: |
|
try: |
|
os.close(self.parent_fd) |
|
except Exception: |
|
# If something weird happened preventing the close, there's |
|
# nothing to be done about it now... |
|
pass |
Following the commit history looks like 87d3370 is the root cause of fabric/fabric#2241
Localrunner is not calling their parentstop()but it's calling it's propperstop()method, thus making the timer thread is never cancelled.According to this commnet calling the parent
stop()should solve this problem.invoke/invoke/runners.py
Lines 1330 to 1340 in 7184e16