[Bug 1771928] Re: Disk usage leak on image import

Alexander Kharkov 1771928 at bugs.launchpad.net
Fri May 18 04:06:26 UTC 2018


Just a simple test which tries to create instant from 'bad' image uploaded to glance
show that disk space is lost. In my case it was ~= 800Mb image

root at shura-edge1:~# lsof -P 2>/dev/null | grep nova-com | grep  /tmp                                                                                                         
nova-comp 25306             nova   10u     unix 0xffff88007795c000       0t0    2128952 /tmp/tmpybLoe9/privsep.sock type=STREAM                                              
nova-comp 25306             nova   17u      REG              253,1 884226169      10489 /tmp/tmpDcl9E7 (deleted)                                                             
nova-comp 25306             nova   18u      REG              253,1         0      26813 /tmp/tmpGX3y7K (deleted)                                                             
nova-comp 25306             nova   26u      REG              253,1 884226169      56992 /tmp/tmpWMDoKu (deleted)                                                             
nova-comp 25306             nova   27u      REG              253,1         0      57308 /tmp/tmp4eR46t (deleted)                                                             
nova-comp 25306             nova   30u      REG              253,1 884226169      57334 /tmp/tmpFTMcjK (deleted)                                                             
nova-comp 25306             nova   31u      REG              253,1         0      57394 /tmp/tmpfZOfB1 (deleted)

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

Title:
  Disk usage leak on image import

Status in nova-lxd package in Ubuntu:
  New

Bug description:
  Nova LXD driver contains a disk usage resource leak.
  Each disk image import from Glance leads to O(image_size) disk space lost in /tmp.
  Leak exists until nova-compute service is restarted as during restart open descriptors will be freed and disk space will reclaimed by OS.

  The reason is wrong usage of mkstemp in nova/virt/lxd/driver.py _sync_glance_image_to_lxd.
  The code use mkstemp to generate "random" filename to pass to glance API as destination path for downloaded image. But mkstemp also open file description to this file which is lost and never closed. As result even when this temporary file (downloaded image) is deleted file is still locked by nova-compute process.

  def _sync_glance_image_to_lxd(client, context, image_ref):
  ...
      try:
          image_file = tempfile.mkstemp()[1]
          # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          # in code above we lost msktemp[0] of tuple which is open file handle
          # so file never be 'freed' until process finished
  ...
          IMAGE_API.download(context, image_ref, dest_path=image_file) 
  ....

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



More information about the Ubuntu-openstack-bugs mailing list