At least python-libvirt, which nova-compute  uses, seems to leak memory
when handling XML data.  Find the file d.py attached which reproduces a
similar problem.

ii  python-libvirt      1.2.2-0ubuntu1 amd64          libvirt Python
bindings

valgrind can detect "definitely lost".

# ps -ef|grep d.py
root     25578 17888 24 14:40 pts/0    00:00:03 python ./d.py 100000
root     25594 25581  0 14:41 pts/2    00:00:00 grep --color=auto d.py
# pmap -x 25578|head
25578:   python ./d.py 100000
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000    2804    1448       0 r-x-- python2.7
00000000008bc000       4       4       4 r---- python2.7
00000000008bd000     468     260     176 rw--- python2.7
0000000000932000      72      64      64 rw---   [ anon ]
0000000001a82000   72328   72296   72296 rw---   [ anon ]
00007f0851a3a000      28       8       0 r-x-- libffi.so.6.0.1
00007f0851a41000    2044       0       0 ----- libffi.so.6.0.1
00007f0851c40000       4       4       4 r---- libffi.so.6.0.1
# pmap -x 25578|head
25578:   python ./d.py 100000
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000    2804    1448       0 r-x-- python2.7
00000000008bc000       4       4       4 r---- python2.7
00000000008bd000     468     260     176 rw--- python2.7
0000000000932000      72      64      64 rw---   [ anon ]
0000000001a82000   87900   87848   87848 rw---   [ anon ]
00007f0851a3a000      28       8       0 r-x-- libffi.so.6.0.1
00007f0851a41000    2044       0       0 ----- libffi.so.6.0.1
00007f0851c40000       4       4       4 r---- libffi.so.6.0.1
# pmap -x 25578|head
25578:   python ./d.py 100000
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000    2804    1448       0 r-x-- python2.7
00000000008bc000       4       4       4 r---- python2.7
00000000008bd000     468     260     176 rw--- python2.7
0000000000932000      72      64      64 rw---   [ anon ]
0000000001a82000  120676  120636  120636 rw---   [ anon ]
00007f0851a3a000      28       8       0 r-x-- libffi.so.6.0.1
00007f0851a41000    2044       0       0 ----- libffi.so.6.0.1
00007f0851c40000       4       4       4 r---- libffi.so.6.0.1

# valgrind --leak-check=full /usr/bin/python ./d.py
...
==25610== 12,682 bytes in 4 blocks are definitely lost in loss record 227 of 236
==25610==    at 0x4C2AB80: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==25610==    by 0x5183844: xdr_string (xdr.c:788)
==25610==    by 0x67E1A8D: ??? (in /usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x67E4CF8: ??? (in /usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x67FDA61: virNetMessageDecodePayload (in 
/usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x67F2AEB: virNetClientProgramCall (in 
/usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x67C7025: ??? (in /usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x67D0174: ??? (in /usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x6787907: virDomainGetXMLDesc (in /usr/lib/libvirt.so.0.1002.2)
==25610==    by 0x642E41D: libvirt_virDomainGetXMLDesc (in 
/usr/lib/python2.7/dist-packages/libvirtmod.so)
==25610==    by 0x52C6D4: PyEval_EvalFrameEx (in /usr/bin/python2.7)
==25610==    by 0x55C593: PyEval_EvalCodeEx (in /usr/bin/python2.7)
==25610==
==25610== LEAK SUMMARY:
==25610==    definitely lost: 12,682 bytes in 4 blocks
==25610==    indirectly lost: 0 bytes in 0 blocks
==25610==      possibly lost: 1,064 bytes in 2 blocks
==25610==    still reachable: 791,708 bytes in 1,186 blocks
==25610==         suppressed: 0 bytes in 0 blocks


** Attachment added: "d.py"
   
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1365250/+attachment/4201086/+files/d.py

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/1365250

Title:
  nova-compute memory leak

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1365250/+subscriptions

-- 
Ubuntu-server-bugs mailing list
Ubuntu-server-bugs@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs

Reply via email to