The root cause of this bug seems to be related to olcAccessLogOps and olcAccessLogBase features. If I use one of them to specify I want to log only "modify" operations: olcAccessLogOps: modify or olcAccessLogBase: modify <suffix>
Then when I do an "add", slapo-accesslog takes the op_rmutex in accesslog_op_mod but never release it in accesslog_response.
The analysis looks correct. slapo-accesslog(5) was locking the mutex for all write operations, but only releasing it for those that needed to be logged.
Should be fixed now in master. Please test.
Thanks, p.