Public bug reported:

When instances are deployed on multiple compute nodes concurrently and
instance_path is set to shared storage (i.e. Virtuozzo Storage), that
doesn't support concurrent write operations on the same file,
_supports_direct_io() fails with OSError: [Errno 16] Device or resource
busy: '/var/lib/nova/instances/.directio.test'.

2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0] Traceback (most recent call last):
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2218, in 
_build_resources
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     yield resources
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2064, in 
_build_and_run_instance
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     block_device_info=block_device_info)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2941, in 
spawn
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     write_to_disk=True)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4909, in 
_get_guest_xml
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     context)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4768, in 
_get_guest_config
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     flavor, guest.os_type)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3806, in 
_get_guest_storage_config
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     inst_type)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3748, in 
_get_guest_disk_config
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     self.disk_cachemode,
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 739, in 
disk_cachemode
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     if not 
self._supports_direct_io(CONF.instances_path):
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3128, in 
_supports_direct_io
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     {'path': dirpath, 'ex': e})
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     self.force_reraise()
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     six.reraise(self.type_, self.value, 
self.tb)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3110, in 
_supports_direct_io
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     f = os.open(testfile, os.O_CREAT | 
os.O_WRONLY | os.O_DIRECT)
2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0] OSError: [Errno 16] Device or resource 
busy: '/var/lib/nova/instances/.directio.test'

** Affects: nova
     Importance: Undecided
     Assignee: Pavel Gluschak (scsnow)
         Status: In Progress

** Changed in: nova
     Assignee: (unassigned) => Pavel Gluschak (scsnow)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1727369

Title:
  _supports_direct_io() check fails on shared storage

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  When instances are deployed on multiple compute nodes concurrently and
  instance_path is set to shared storage (i.e. Virtuozzo Storage), that
  doesn't support concurrent write operations on the same file,
  _supports_direct_io() fails with OSError: [Errno 16] Device or
  resource busy: '/var/lib/nova/instances/.directio.test'.

  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0] Traceback (most recent call last):
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2218, in 
_build_resources
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     yield resources
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2064, in 
_build_and_run_instance
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     block_device_info=block_device_info)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2941, in 
spawn
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     write_to_disk=True)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4909, in 
_get_guest_xml
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     context)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4768, in 
_get_guest_config
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     flavor, guest.os_type)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3806, in 
_get_guest_storage_config
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     inst_type)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3748, in 
_get_guest_disk_config
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     self.disk_cachemode,
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 739, in 
disk_cachemode
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     if not 
self._supports_direct_io(CONF.instances_path):
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3128, in 
_supports_direct_io
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     {'path': dirpath, 'ex': e})
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     self.force_reraise()
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     six.reraise(self.type_, self.value, 
self.tb)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]   File 
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3110, in 
_supports_direct_io
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0]     f = os.open(testfile, os.O_CREAT | 
os.O_WRONLY | os.O_DIRECT)
  2017-10-19 21:11:29.030 160580 ERROR nova.compute.manager [instance: 
8ce8f6f4-a3a5-457e-bd18-72b453efe2e0] OSError: [Errno 16] Device or resource 
busy: '/var/lib/nova/instances/.directio.test'

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to