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.