[tor-talk] [bug] MAPADDRESS and circuit creation
grarpamp at gmail.com
Thu Apr 21 01:09:13 UTC 2011
I think I found something strange. Consider the following shell
for exit in list_of_exits ; do
mapaddress example.com=example.com.$exit.exit 
Fire off ten to twenty background processes in parallel that try
to connect to example.com. Depending on timing and other issues,
some may succeed, some may fail, some may be waiting their timeout
retry period due to failure to connect to example.com the first
time, etc. Think wget here.
wait - 'wait' them in the shell till they all exit.
mapaddress example.com=example.com 
mapaddress example.com.$exit.exit=example.com.$exit.exit 
 Now this map effectively clears the dynamically made map (from
) to the default (no) mapping. And the getinfo confirms it is
gone. The shell 'wait' ensures that the spawned processes are all
gone and thus do not remain to make further use of the map in .
The bug is... sometimes (while for'ing through the long list of
exits), at the end of the next iteration of the loop (and beyond,
until the old entry expires), getinfo will show a dynamic entry for
the previous exit. Of the form:
example.com.<exit>.exit <it's IP address>.<exit>.exit "2011-04-xx xx:xx:xx"
My guess is that the processes put in a request for a circuit (by
simply trying to connect). But that  doesn't kill that request
within Tor, it only removes any dynamic map that currently exists.
I subsequently tested by adding , it had no effect on this issue.
I believe both  and  should kill any pending requests for
their respective, formerly mapped, entities.
Any thoughts before I trac this?
Also, I see this every once in a while, not real hypothesis other
than something similar going on:
example.com <it's IP address> "2011-04-xx xx:xx:xx"
More information about the tor-talk