著者: anonym 日付: To: The T(A)ILS public development discussion list 題目: Re: [T(A)ILS-dev] About bridges support
07/02/11 20:44, anonym: > New patch which should fix the issue.
>
> It seems there was a race condition of sorts, but I must admitt I don't
> completely understand it. It seems the network config window is closed
> when Vidalia's Control panel (= main window) updates its UI after
> bootstrapping has progressed. The problem is that I can't find any trace
> of any code that wants to kill any such external windows when that
> occurs... and therefore I base my claim of this race condition only on
> my flawed human senses (i.e. when I managed to reproduce the problem, it
> *always* occured at the exact same time as bootstrapping bumped the UI).
>
> In the new patch I simply put the popup's to appear in the hook when
> vidalia has authenticated to Tor. That should be the last bootstrapping
> UI bump that can happen before Tor has received a bridge through
> Vidalia. And since this works, my above claim might get some more
> validation...
>
> Of course it's no real fix, but it works for now until I've dug deeper
> into this. I'd like to see how this one works out for you, just to rule
> out that I'm completely wrong.
Ok, now I've found the source of this problem, and I can confirm that I
was mostly correct. The settings window (and no other window) is closed
once Vidalia has authenticated to Tor, so it's not for _any_
bootstrapping event as I originally thought. This is done since the
settings in Vidalia and in the Tor instance might be out of sync.
With this in mind, there's a slight problem with my previous patch: The
-bridgeconf stuff we want to show and the action closing the network
settings are hooked to the same event (namely finishing Tor
authentication) so there's the possibility of a race condition between
showing the settings window and closing it.
However, I was (unknowingly) foresighted enough in my previous patch to
make the network settings show only after the user has pressed the
Ok/Help button in the T(A)ILS specific bridge help popup, so the added
need of human interaction + time to show popup will make it impossible
for the race condition to occur in reality, so, while sort of ugly, it's
of no practical consequence.