ofiwg / libfabric

Open Fabric Interfaces

Home Page:http://libfabric.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fix memory leaks detected by ASAN in Libfabric core code

shijin-aws opened this issue · comments

I built Libfabric & fabtests with --enable-asan and observed the following memory leaks when running fi_rdm

[ec2-user@ip-172-31-44-213 libfabric]$ fi_rdm -p efa -E
Waiting for message from client...
Data check OK
Received data from client: Hello from Client!

=================================================================
==72864==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 136 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb845a46ea in ofi_bufpool_create_attr (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0xee6ea)

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb8453042d in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a42d)

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb84718498 in smr_ep_bind (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x262498)

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb84719e04 in smr_ep_ctrl (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x263e04)
    #2 0x7ffb847d74e7  (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x3214e7)

Indirect leak of 200 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb84530793 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a793)

Indirect leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb845306c5 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a6c5)

Indirect leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb84530631 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a631)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb84530679 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a679)

Indirect leak of 56 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb8455467b in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e67b)

Indirect leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb84554763 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e763)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb84554aa5 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9eaa5)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb845308d0 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a8d0)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b5257d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x7ffb8453058b in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a58b)

Indirect leak of 28 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb84554af3 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9eaf3)

Indirect leak of 14 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb84530821 in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a821)

Indirect leak of 12 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84b52753 in __interceptor_calloc (/lib64/libasan.so.4+0xd8753)
    #1 0x7ffb8455499b in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e99b)

Indirect leak of 10 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb845547b1 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e7b1)

Indirect leak of 9 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb84554b3e in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9eb3e)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb84554942 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e942)

Indirect leak of 7 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb845548a0 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e8a0)

Indirect leak of 7 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb845547fe in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e7fe)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb8453098e in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a98e)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb8453095a in fi_dupinfo@@FABRIC_1.7 (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x7a95a)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb845548f1 in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e8f1)

Indirect leak of 2 byte(s) in 1 object(s) allocated from:
    #0 0x7ffb84aee12f in __interceptor_strdup (/lib64/libasan.so.4+0x7412f)
    #1 0x7ffb8455484f in ofi_nic_dup (/home/ec2-user/PortaFiducia/build/libraries/libfabric/main/install/libfabric/lib/libfabric.so.1+0x9e84f)

More debug shows it's actually from efa provider. Close this issue and track it internally