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

Re: (ITS#3671) disconnecting a syncrepl consumer deadlocks the provider



Ralf Haferkamp wrote:

>On Thursday 28 April 2005 12:26, rhafer@suse.de wrote:
>  
>
>>On Monday 25 April 2005 00:10, Howard Chu wrote:
>>    
>>
>>>This is now fixed in HEAD, although some further discussion about
>>>the queueing behavior may be warranted.
>>>      
>>>
>>I just tested HEAD again. Now it shows a different behaviour. The
>>first ldapadd that I started after pulling the network plug still
>>stops progressing after a few entries. The improvement is that the
>>provider keeps processing search requests and addtional add request
>>(only the first ldapadd is locked).
>>    
>>
There is no way to avoid this first request getting locked.

>>On the downside the (locked) ldapadd didn't resume operation after I
>>reconnected the network cable.
>>
That behavior will depend on the TCP retransmit timers.

>> I tried to stop the consumer then and
>>this made the provider crash with the following backtrace:
>>    
>>
>Well I have to correct myself a bit it doesn't really crash, but runs 
>into an assertion:
>
>lt-slapd: connection.c:634: connection_destroy: Assertion 
>`c->c_writewaiter == 0' failed.
>
This is puzzling, since connection_closing() signals the writer 
condition, but your stack trace shows that the writer is still in the 
condition wait. I don't have any good ideas here at the moment.

-- 
  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support