[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #5601 [Tor Bridge]: Tor complains that it can't find a ClientTransportPlugin line, when managed proxy dies.
#5601: Tor complains that it can't find a ClientTransportPlugin line, when managed
proxy dies.
------------------------+---------------------------------------------------
Reporter: asn | Owner:
Type: defect | Status: new
Priority: normal | Milestone: Tor: 0.2.3.x-final
Component: Tor Bridge | Version:
Keywords: pt | Parent: #5070
Points: | Actualpoints:
------------------------+---------------------------------------------------
Comment(by asn):
The bad log message comes out of `validate_pluggable_transports_config()`.
That function iterates all configured bridges, checks if they are supposed
to use a transport, and then checks if a corresponding `transport_t` is
available. If not, it whines with the above message.
In our case, the managed proxy failed to launch and no transports were
ever registered. `validate_pluggable_transports_config()` couldn't find a
good `transport_t` and it whined.
The correct thing to do here, would be to give out appropriate log
messages for each case. That is, when there are no ClientTransportPlugin
lines, spit out the current log message. When a transport failed and it
can't be found, spit out a message that says "Seems like your proxy X with
transports Y died, we won't be able to connect to bridge Z."
Unfortunately, `transports.c` is quite aggressive wrt transports and
completely destroys them when something goes wrong, so in
`validate_pluggable_transports_config()` there is no way to know if a
transport ever existed.
Let me suggest the following:
- In 0.2.3.x we change the log message to say something along the lines of
"We can't find a proxy providing the X transport you asked for. Did you
specify it in a ClientTransportPlugin line? If no, you should. If you did,
please look at your logs and see if your proxy failed."
- In 0.2.4.x we slightly refactor `transports.c` so that `transport_t` and
`managed_proxy_t` don't get destroyed when they fail. Instead, we add an
`is_valid` element to their structure, and instead of destroying them, we
switch it to `0`. Then we will be able to find out if a transport used to
exist in the past but it failed.
Nick, what do you say?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/5601#comment:1>
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