← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1565399] Re: A stale file handle error occurs when resizing

 

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

commit f7cbccce3a8ec74e8c49b72fdbd7016f6597d46f
Author: Hiroyuki Eguchi <h-eguchi@xxxxxxxxxxxxx>
Date:   Sun Apr 3 05:56:06 2016 +0000

    Fix stale file handle error in resource tracker
    
    This error can occur when resizing vm and
    resource tracker are executed at the same time.
    
    The cause of this bug is that
    the file path of a VM disk is changed
    temporarily when resizing.
    
    So we have to take into account
    the OSError(errno.ESTALE)
    in order to avoid above error.
    
    Closes-Bug: #1565399
    Change-Id: Idf4af5e7ab82c2e4a08180ba5ce8d996db7c270f


** 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/1565399

Title:
  A stale file handle error occurs when resizing

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  This error can occur when resizing vm and resource tracker are
  executed at the same time.

  The cause of this bug is that the file path of a VM disk is changed temporarily when resizing.
  (from /var/lib/nova/instances/[UUID]/ to /var/lib/nova/instances/[UUID]_resize/)

  The _get_instance_disk_info method which gets a total disk size that all instance uses is executed periodically in resource_tracker.
  At that time, the os.path.getsize() method which gets a file size is executed.

  It is just a speculation, but the os.path.getsize() method consists of
  these steps.

   1. open the file by using a fopen method in C
   2. get the status of file by using a stat method in C
   
  At that time, if the file path of a VM disk is changed between 1. and 2., a errno.ESTALE will occur.
  So we have to take into account the OSError(errno.ESTALE) in order to avoid above error.

  It's a very rare case, however it can happen with a shared storage
  environment using slow NFS.

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


References