Hide Forgot
THere is a memory leak in afr_sh_data_open. This is observed in glusterfs-3.0.5rc6(3.0.5rc5 too). valgrind report: 272 (64 direct, 208 indirect) bytes in 1 blocks are definitely lost in loss record 92 of 145 ==4084== at 0x4C2414B: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==4084== by 0x4E6425B: fd_create (fd.c:490) ==4084== by 0x6676CBF: afr_sh_data_open (afr-self-heal-data.c:1170) ==4084== by 0x6676F7E: afr_self_heal_data (afr-self-heal-data.c:1205) ==4084== by 0x667BF5B: afr_sh_metadata_done (afr-self-heal-metadata.c:88) ==4084== by 0x667C09C: afr_sh_metadata_unlck_cbk (afr-self-heal-metadata.c:123) ==4084== by 0x6434AEC: client_inodelk_cbk (client-protocol.c:5441) ==4084== by 0x64379DB: protocol_client_interpret (client-protocol.c:6571) ==4084== by 0x64386A1: protocol_client_pollin (client-protocol.c:6869) ==4084== by 0x6438D15: notify (client-protocol.c:6988) ==4084== by 0x4E422F9: xlator_notify (xlator.c:929) ==4084== by 0x7F35256: socket_event_poll_in (socket.c:771)
Pavan - please indicate target release.
the client translator does not unref the fd if client_open errors out. the patch for the bug 762726 will fix this one as well, as client_local_wipe() deallocates the memory and unrefs the fd.