Hi,
I'm running two ldap servers (2.4.44) in a 2-Way multi master setup on RHEL 2.6 (glibc 2.12). Valgrind detects a memory leak every time an entry is deleted a provider.
configure options... --without-cyrus-sasl \ --disable-bdb \ --disable-hdb \ --enable-ldap \ --enable-mdb \ --enable-constraint
Valgrind output from the provider where the entry was deleted. ..... ==15112== 100 bytes in 1 blocks are possibly lost in loss record 10 of 11 ==15112== at 0x4A05EDF: calloc (vg_replace_malloc.c:710) ==15112== by 0x51CA6C: ber_memcalloc_x (memory.c:260) ==15112== by 0x4F4374: ldap_pvt_runqueue_insert (rq.c:48) ==15112== by 0x4D688A: log_cf_gen (accesslog.c:942) ==15112== by 0x4161D2: config_set_vals (config.c:353) ==15112== by 0x485BD0: over_db_config (backover.c:117) ==15112== by 0x41A142: read_config_file (config.c:844) ==15112== by 0x415290: read_config (bconfig.c:4238) ==15112== by 0x407279: main (main.c:797) ==15112== ==15112== 393 bytes in 1 blocks are definitely lost in loss record 11 of 11 ==15112== at 0x4A0717A: malloc (vg_replace_malloc.c:298) ==15112== by 0x51CB54: ber_memalloc_x (memory.c:204) ==15112== by 0x43A9EA: ch_malloc (ch_malloc.c:54) ==15112== by 0x4DDFE2: syncprov_qresp (syncprov.c:1061) ==15112== by 0x4DF812: syncprov_op_response (syncprov.c:1981) ==15112== by 0x42F87D: slap_response_play (result.c:508) ==15112== by 0x4303F8: send_ldap_response (result.c:583) ==15112== by 0x4310EB: slap_send_ldap_result (result.c:861) ==15112== by 0x4C7681: mdb_delete (delete.c:464) ==15112== by 0x484C1D: overlay_op_walk (backover.c:677) ==15112== by 0x485692: over_op_func (backover.c:730) ==15112== by 0x438B72: fe_op_delete (delete.c:174) ==15112== ==15112== LEAK SUMMARY: ==15112== definitely lost: 548 bytes in 4 blocks ==15112== indirectly lost: 0 bytes in 0 blocks ==15112== possibly lost: 303 bytes in 5 blocks ==15112== still reachable: 64 bytes in 2 blocks ==15112== suppressed: 0 bytes in 0 blocks ==15112== Reachable blocks (those to which a pointer was found) are not shown. ==15112== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==15112== ==15112== For counts of detected and suppressed errors, rerun with: -v ==15112== Use --track-origins=yes to see where uninitialised values come from ==15112== ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 4 from 4) ==15112== could not unlink /tmp/vgdb-pipe-from-vgdb-to-15112-by-root-on-nsdalvmldap12.isppe.in.telstra.com.au ==15112== could not unlink /tmp/vgdb-pipe-to-vgdb-from-15112-by-root-on-nsdalvmldap12.isppe.in.telstra.com.au ==15112== could not unlink /tmp/vgdb-pipe-shared-mem-vgdb-15112-by-root-on-nsdalvmldap12.isppe.in.telstra.com.au
snippet of syncprov overlay from the slapd.conf ...
mirrormode on overlay syncprov syncprov-checkpoint 100 10 syncprov-sessionlog 10000 syncprov-nopresent TRUE
...
Regards,
Ping