luca.scamoni@sys-net.it ha scritto:
Howard Chu ha scritto:
This trace is bogus, there's no call from slapd_daemon_destroy() to epoll_wait() in the code. And you wouldn't have gotten to slapd_daemon_destroy() unless you were shutting down.
This is also bogus; is this an optimized compile? It's always hard to tell how much to trust the debugger here; if there are no further stack frames then possibly the stack was overwritten. But if you compiled with any type of optimization, and didn't use -fno-omit-frame-pointer, then that may be all that's happening here.
I managed to find out how to reproduce the issue. Now it's deterministic and happens with openldap-2.4.16. The segfault can be caused by performing an ldapmodify on a specific entry replacing a binary attribute certificateRevocationList.
I'm sending privately the backtrace analized with gdb and the slapd.conf file
Another update The issue seems to be in the order in which rwm and syncprov are invoked. If the slapd.conf file contains:
database hdb [...]
overlay rwm [...]
overlay syncprov [...]
the modification causes slapd to segfault if the two overlays are swapped
database hdb [...]
overlay syncprov [...]
overlay rwm [...]
it doesn't. So there is something wrong in the interaction between these two
Ing. Luca Scamoni Responsabile Ricerca e Sviluppo
SysNet s.r.l. via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it ----------------------------------- Office: +39 0382 573859 (137) Fax: +39 0382 476497 Email: luca.scamoni@sys-net.it -----------------------------------