← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1629371] Re: libvirt: volume snapshot stacktraces if the qemu guest agent is not available

 

Reviewed:  https://review.openstack.org/380433
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e659a6e7cbb3078b47c0860465530eab05acf73e
Submitter: Jenkins
Branch:    master

commit e659a6e7cbb3078b47c0860465530eab05acf73e
Author: Matt Riedemann <mriedem@xxxxxxxxxx>
Date:   Fri Sep 30 12:16:41 2016 -0400

    libvirt: check if we can quiesce before volume-backed snapshot
    
    The NFS job in the experimental queue is stacktracing when taking
    a volume-backed snapshot because the image used in the job does
    not have the qemu guest agent in it. This is not fatal because the
    code just continues to snapshot without quiesce.
    
    Since we have code that can tell if we can even attempt a quiesce
    we should use that here before attempting the snapshot with quiesce,
    else don't even attempt it so we don't stacktrace.
    
    Note that this also adds a check such that if the image requires
    quiesce as part of a snapshot and we can't honor that, we fail.
    
    The stacktrace is intentionally left in here in case the snapshot
    with quiesce fails because we checked if we could and only get to
    that point if we should be able to quiesce but it failed, which
    is an error that should be investigated.
    
    Also, the unused quiesce parameter is removed from the
    test_volume_snapshot_create_libgfapi test while in this code.
    
    Change-Id: I685c592340dc8a3b7d32834a0114f2925dc4305c
    Closes-Bug: #1629371


** Changed in: nova
       Status: In Progress => Fix Released

-- 
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/1629371

Title:
  libvirt: volume snapshot stacktraces if the qemu guest agent is not
  available

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  The libvirt driver attempts to quiece the filesystem when doing a
  volume snapshot and will stacktrace if the qemu guest agent is not
  available:

  http://logs.openstack.org/86/147186/41/experimental/gate-tempest-dsvm-
  full-devstack-plugin-nfs-
  nv/fe58d89/logs/screen-n-cpu.txt.gz?level=TRACE#_2016-09-30_10_36_32_039

  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [req-93930c3c-4482-4c30-97ad-4dbcd251a9ba nova service] [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08] Unable to create quiesced VM snapshot, attempting again with quiescing disabled.
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08] Traceback (most recent call last):
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/opt/stack/new/nova/nova/virt/libvirt/driver.py", line 1827, in _volume_snapshot_create
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     reuse_ext=True, quiesce=True)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/opt/stack/new/nova/nova/virt/libvirt/guest.py", line 508, in snapshot
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     self._domain.snapshotCreateXML(conf.to_xml(), flags=flags)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 186, in doit
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     result = proxy_call(self._autowrap, f, *args, **kwargs)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 144, in proxy_call
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     rv = execute(f, *args, **kwargs)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 125, in execute
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     six.reraise(c, e, tb)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 83, in tworker
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     rv = meth(*args, **kwargs)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]   File "/usr/local/lib/python2.7/dist-packages/libvirt.py", line 2592, in snapshotCreateXML
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08]     if ret is None:raise libvirtError('virDomainSnapshotCreateXML() failed', dom=self)
  2016-09-30 10:36:32.039 10790 ERROR nova.virt.libvirt.driver [instance: 01211c7e-b3ac-4d17-80bb-30fbe8494c08] libvirtError: 

  The volume snapshot method then goes on to snapshot the guest without
  quiescing first.

  We shouldn't stacktrace an error on this, we should dump a warning in
  the logs at most.

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


References