[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