[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #10006 [Pluggable transport]: Build an obfs-flash PT bundle
#10006: Build an obfs-flash PT bundle
-------------------------------------+-------------------
Reporter: dcf | Owner: dcf
Type: task | Status: new
Priority: normal | Milestone:
Component: Pluggable transport | Version:
Resolution: | Keywords:
Actual Points: | Parent ID: #7167
Points: |
-------------------------------------+-------------------
Comment (by dcf):
With the patch in #10017, I got the Windows build running and bootstrapped
over obfs-flash proxies. Hooray!
However, I am having trouble with subprocesses continuing to run after
Vidalia and Tor stop running. I consistently see obfsproxy.exe continuing
to run, using the configuration that is currently in the obfs-flash bundle
branch, where Tor invokes obfs-flash-client.exe directly, without an
intermediate batch file. One process (obfsproxy.exe) is the fewest
surviving processes I've been able to get; with other configuration I get
some more; see below. The extra process stops Vidalia from being launched
a second time.
[http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx Process
Explorer] is the tool I'm using to look at the process trees.
=== Vidalia, no batch file ===
This is what happen with the [https://gitweb.torproject.org/pluggable-
transports/bundle.git/commit/fbf5d5ac2c3b7f843ae83414a2e2b283292c2d05 code
currently in the obfs-flash branch] of the bundle repo. Here is the
process tree after Tor is fully bootstrapped and the browser window is
open:
[[Image(proctree-7.png)]]
Here is the process tree after closing the browser and exiting Vidalia.
Notice that obfsproxy.exe is unparented and now its own root. All the
other processes disappeared.
[[Image(proctree-8.png)]]
If I try to relaunch Vidalia while obfsproxy.exe is still running, it
enters a "Not Responding" state and I have to forcibly kill it. It remains
that way until I manually kill the old obfsproxy.exe process.
[[Image(vidalia-notresponding.png)]]
=== Vidalia with batch file ===
Originally I had a batch file wrapper invoking obfs-flash-client.exe. That
turned out [https://gitweb.torproject.org/pluggable-
transports/bundle.git/commit/fbf5d5ac2c3b7f843ae83414a2e2b283292c2d05 not
to be necessary], but it may help to see how the processes looked in that
configuration.
Here cmd.exe is the batch file.
[[Image(proctree-1.png)]]
obfs-flash-client.exe and obfsproxy.exe survive. Interestingly,
flashproxy-client.exe was killed, even though it was also started by obfs-
flash-client.exe.
[[Image(proctree-2.png)]]
This situation is presumably a little worse than when only obfsproxy.exe
survives, because obfs-flash-client.exe will still have bound the local
port 2334.
I also tried a little Python wrapper instead of a batch file, and it made
no difference.
=== Invoking obfs-flash-client.exe directly ===
You can reproduce it without building a full bundle. Here is how I tried
running obfs-flash-client directly from a Cygwin shell.
{{{
TOR_PT_STATE_LOCATION=. TOR_PT_MANAGED_TRANSPORT_VER=1
TOR_PT_CLIENT_TRANSPORTS=obfs3_flashproxy ./App/obfs-flash-client --fp-
arg=--facilitator=http://siteb.fp-facilitator.org/fac/ --fp-arg
=--register-methods=http 2334 :9000
}}}
[[Image(proctree-5.png)]]
This is how it looks after ctrl-C. This time obfs-flash-client.exe was
killed, but flashproxy-client.exe survived alongside obfsproxy.exe. (They
are now both root processes without a parent.)
[[Image(proctree-6.png)]]
=== Invoking batch file directly ===
Finally, here is how it is slightly different if you call the batch file
from the shell. The batch process is killed, but obfs-flash-client.exe and
its two descendants survive.
{{{
TOR_PT_STATE_LOCATION=. TOR_PT_MANAGED_TRANSPORT_VER=1
TOR_PT_CLIENT_TRANSPORTS=obfs3_flashproxy ./App/obfs-flash-client-env.bat
--fp-arg=--facilitator=http://siteb.fp-facilitator.org/fac/ --fp-arg
=--register-methods=http 2334 :9000
}}}
[[Image(proctree-3.png)]]
After ctrl-C:
[[Image(proctree-4.png)]]
----
Are you able to reproduce the result of obfsproxy.exe surviving using one
of the shell commands above? Do you have any ideas why obfsproxy.exe is
surviving and flashproxy-client.exe is being killed? Maybe as a stopgap
workaround, we could have obfs-flash-client be more forcible about killing
its children after the first time it gets a signal.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/10006#comment:5>
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