[Date Prev][Date Next]
Re: (ITS#3671) disconnecting a syncrepl consumer deadlocks the provider
Ralf Haferkamp wrote:
>On Thursday 28 April 2005 12:26, firstname.lastname@example.org 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
Symas: Premier OpenSource Development and Support