[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #17946 [Stem]: launch_tor should kill process on exception while bootstrapping (for example, on KeyboardInterrupt)
#17946: launch_tor should kill process on exception while bootstrapping (for
example, on KeyboardInterrupt)
------------------------+-----------------------------------
Reporter: germn | Owner: atagar
Type: defect | Status: new
Priority: Medium | Milestone:
Component: Stem | Version:
Severity: Normal | Keywords: launch_tor, bootstrap
Actual Points: | Parent ID:
Points: | Sponsor:
------------------------+-----------------------------------
What will happen if we will call
{{{
stem.process.launch_tor_with_config(config, timeout=None)
}}}
and CTRL+C some time after?
KeyboardInterrupt exception would be raised somewhere inside launch_tor,
and we will have one of following situations:
1) KeyboardInterrupt raised before or while subprocess.Popen - everything
is ok
2) KeyboardInterrupt raised after subprocess.Popen, inside bootstrapping,
but before launch_tor finished - we will have hanging tor process with no
ability to terminate it manually.
This issue is about to fix second case. All we need is to add handling of
second situation inside launch_tor function. Here's example of code that
should be added before line 165 inside stem.process:
{{{
except: # on any exception while bootstrapping
tor_process.kill() # kill existing process
raise # reraise exception
}}}
But note, you should also fix "finally" block to prevent closing stdout,
stderr of terminated process.
Note, this issue is not only about KeyboardInterrupt, but also for any
other exception that can be raised suddenly everyehere, like
asyncio.CancelledError
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/17946>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs