yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #48904
[Bug 1565399] [NEW] A stale file handle error occurs when resizing
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
Follow ups