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

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



Here's more detail on what's going on in the hang case:

1. Client sends bind request to R

2. select(R)

3. Client gets bind response, sends a search request

4. select(R)

5. Client gets referral to CS, sends bind request to CS

6. select(R | CS) 

7. Clients has two packets waiting: both a "protocol not supported" bind
refusal from CS and a search result from R.

8. select(R)

Apparantly the client has read from R before step 8, because the select
never returns. Either the client is mistakenly reading the packet and not
processing it (where processing entails sending an unbind to R, which
would make the select appropriate), or it's calling select for no reason,
and is ready to send the unbind request as soon as select exists.

I'll put a timeout on that select and see what happens when it times out.