[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#6783) back-monitor cache/mutex problem
hyc@symas.com wrote:
> h.b.furuseth@usit.uio.no wrote:
>> Full_Name: Hallvard B Furuseth
>> Version: HEAD
>> OS: Linux x86_64
>> URL:
>> Submission from: (NULL) (193.157.198.89)
>> Submitted by: hallvard
>>
>>
>> Core dump in back-monitor with LDAP_THREAD_DEBUG when I hit ^C:
>>
>> ASSERT_OWNER( mutex, "ldap_pvt_thread_mutex_unlock" );
>
> I see this too. The Abandon loop's logic is backwards. It's looping from the
> current entry to the end of the list and releasing those entries, when it
> should only be reasling from the head of the list to the current entry. (I.e.,
> everything on the tail of the list has not yet been locked by this thread.)
>
> I'll commit a fix shortly.
Never mind, I read this loop wrong. The actual problem is that it calls
monitor_cache_release() for volatile entries that had never been locked, and
it enters the nonvolatile == 0 loop even when there were no volatile entries.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/