[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #11044 [Tor]: No consensus results in empty 'GETINFO ns/name/*' responses
#11044: No consensus results in empty 'GETINFO ns/name/*' responses
--------------------+---------------------
Reporter: atagar | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: Tor | Version:
Keywords: | Actual Points:
Parent ID: | Points:
--------------------+---------------------
Hi Nick, spotted an interesting tor oddity during my flight (due to not
having any network connectivity). When calling 'GETINFO ns/name/blarg'
without a cached consensus it returns an empty string rather than the
expected "Unrecognized key" response.
Repro details...
1. With a data directory containing a cached consensus things work as
expected...
{{{
% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE
250 OK
GETINFO ns/all
[ ... lots of output... ]
GETINFO ns/name/blarg
552 Unrecognized key "ns/name/blarg"
}}}
2. Blow away your data directory when you lack network connectivity.
{{{
% mv ~/.tor ~/.tor_bak
% mkdir ~/.tor
% cp ~/.tor_bak/torrc ~/.tor
% cat ~/.tor/torrc
ControlPort 9051
% tor -f ~/.tor/torrc
...
}}}
3. Now GETINFO for 'ns/all' and any requrest for a relay returns an empty
response.
{{{
% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE
250 OK
GETINFO ns/all
250-ns/all=
250 OK
GETINFO ns/name/blarg
250-ns/name/blarg=
250 OK
}}}
Interestingly this only seems to concern router status entries. Server
descriptors and microdescriptors give us a 'Unrecognized key'...
{{{
GETINFO desc/name/blarg
552 Unrecognized key "desc/name/blarg"
GETINFO md/name/blarg
552 Unrecognized key "md/name/blarg"
}}}
For my part I noticed this because it caused an integ testing failure
during my flight...
{{{
======================================================================
ERROR: test_get_network_status
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/stem/test/integ/control/controller.py", line
977, in test_get_network_status
self.assertRaises(stem.ControllerError, controller.get_network_status,
"blargg")
File "/usr/lib/python2.7/unittest/case.py", line 471, in assertRaises
callableObj(*args, **kwargs)
File "/home/atagar/Desktop/stem/stem/control.py", line 1427, in
get_network_status
raise exc
ValueError: Router status entries (v3) must have a 'r' line:
}}}
This doesn't seem like the right tor behavior but if you think it is I can
simply have stem check for the empty string. :)
Cheers! -Damian
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/11044>
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