https://bugs.openldap.org/show_bug.cgi?id=8102

--- Comment #5 from Howard Chu <[email protected]> ---
(In reply to [email protected] from comment #3)

> When a cookie is not sent with an entry the cs_pmutex is not acquired.
> Without having some protection, non-cookie modifications will race
> each other between syncrepl threads.
> 
> So, i am testing surrounding the syncrepl_entry "if" block (line 1036)
> with a cs_pmutex lock/release (when punlock < 0) to serialize
> non_cookie mods just like the cookie ones.
> So far this is running tests and i haven't seen the null_callback
> issue, either when catching up from the session log, or running with
> ongoing out of order writes being replicated (running alongside
> unmodified 2.4.44 to compare differences).
> 
> When acquiring the cs_pmutex i have used the same logic as at line 958
> (using trylock, with a shutdown check). I wonder if it is safe to
> acquire the mutex with a standard ldap_pvt_thread_mutex_lock at this
> point without spinning.

Sounds like you've done things correctly. It's not safe to do a normal
mutex_lock here because the wait time could be quite long, and interfere
with other the pool pause or shutdown operations.

We'll be adding the same code now.
> 
> line numbers from RELENG_2_4 (721a038b7bc9732f52eeef5324c180c4f137cd75)
> 
> Thanks
> 
> Tom

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to