[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: More on the hang bug (ITS#980)

> This works for your particular situation, but what will happen if multiple
> referrals are returned, for example?

This might be tough to follow unless you open up a browser pointed to the
ITS history of this bug...

See followup 3, step 7: the referring server has already sent a search
result, i.e. there are no more referrals. So the second and third options
listed in followup 5 are okay (they don't take effect until after we know 
that there are no more referrals). 

Now, the first option is different - it changes the behavior of step 6,
which happens before we know if there are more referrals coming. It says,
in essence, "After firing off a bind request to the referred-to server, do
a select -only- on that server's socket." But it still works - under
option 1, the new step 6 and onward would be:

6. select(CS)

7. Client has a "protocol not supported" bind refusal from CS. It likely
has a packet waiting from R, but it doesn't know that yet because it
hasn't select()ed R yet.

8. select(R)

9. Client either has another referral (in which case we go back to 
step 5) or a search result, in which case we send an Unbind to the
referring server