https://bugs.openldap.org/show_bug.cgi?id=9847
--- Comment #3 from [email protected] --- Tracked it down. Parent opens kqueue as fd 5. Post fork, child closes fd 5 because /* a kqueue fd obtained before a fork can't be used in child process. * close it and reacquire it. It doesn't work quite like that in OpenBSD. From https://man.openbsd.org/kqueue kqueue() creates a new kernel event queue and returns a descriptor. The queue is not inherited by a child created with fork(2). Similarly, kqueues ^^^^^^^^^^^^^ cannot be passed across UNIX-domain sockets. So in the slapd child fd 5 is lock.db and that is what gets closed by SLAP_SOCK_INIT2. me_lfd remains set to 5 and that is why we get an fcntl later; it is from mdb_reader_pid. If I remove close() from the macro I no longer hit the problem. -- You are receiving this mail because: You are on the CC list for the issue.
