Howard Chu wrote: > Michael Ströder wrote: >> HI! >> >> An Æ-DIR installation with self-compiled OpenLDAP 2.4.53 on Debian (now >> buster) has memory leak issues on the Æ-DIR providers. The read-only >> consumers do not have this issue. The provider config is more complex >> with more overlays. >> >> slapd is automatically restarted (by monit) when memory consumption >> reaches 80%. Thus monitoring clearly shows a frequent saw tooth pattern. >> >> I'm experimenting with valgrind to track down the issue: >> >> valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes >> --verbose --log-file=valgrind-out.txt -- /opt/openldap-ms/libexec/slapd >> [...] >> >> Does that make sense or are some other command-line options needed? > > I've usually just used --leak-check=full, never needed any other options. > > But valgrind runs about 50x slower than realtime, I'd recommend using > https://github.com/hyc/mleak/ instead. It's faster than all other leak > checkers, makes it practical to use in near production-level loads.
One other consideration - both of these tools wait until the target process exits cleanly, before producing results. If the leaks are occurring in a loaded module, you won't get any symbol info because slapd unloads all modules before exiting. To get useful results you need to comment out the module unloading code (in slapd/module.c). And of course, compile with debug symbols enabled, and best to turn optimization off. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
