Public bug reported:

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.

** Affects: nova
     Importance: Undecided
     Assignee: Hiroyuki Eguchi (h-eguchi)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Hiroyuki Eguchi (h-eguchi)

-- 
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):
  New

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to