On Thu, Jan 19, 2017 at 01:55:10PM +1100, teor wrote:
Occasionally, the tor process fails to shut down a pluggable transport process when tor exits. I believe this is an unavoidable consequence of unexpected or unclean tor shutdowns or crashes.
Right. This is why we changed the design in 0.2.7.1-alpha to make it easier for pluggable transports to realize that they need to die:
- When launching managed pluggable transports, setup a valid open stdin in the child process that can be used to detect if tor has terminated. The "TOR_PT_EXIT_ON_STDIN_CLOSE" environment variable can be used by implementations to detect this new behavior. Resolves ticket 15435.
If the pluggable transport is written to die when this happens, it is a bug in the pluggable transport. (Does obfsproxy have an option to die when the controlling process dies?)
If not, it's a missing feature in the pluggable transport.
I think the python obfsproxy has never gotten any updates to adapt to the new Tor feature.
So, one option is to use the go obfsproxy implementation. Another option is for somebody to patch the python obfsproxy. And who knows, maybe there's a third good option too. :)
--Roger