[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/