OSError occours when try to resize-confirm an instance with status 'VERIFY_RESIZE' using NFS bankend (KVM)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Chen Xiao | ||
Havana |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
when using at least two compute nodes using KVM, and use NFS share_storage to test resize an instance.
The configuration of NFS used the introduction about live-migration using NFS in community doc.
when executed command "nova resize ae6f9472-
{u'message': u"[Errno 39] Directory not empty: '/KVM/stack/
| | return function(self, context, *args, **kwargs) |
| | File "/usr/lib/
| | do_confirm_
| | File "/usr/lib/
| | return f(*args, **kwargs) |
| | File "/usr/lib/
| | migration=
| | File "/usr/lib/
| | network_info) |
| | File "/usr/lib/
| | self._cleanup_
| | File "/usr/lib/
| | shutil.
| | File "/usr/lib64/
| | onerror(os.rmdir, path, sys.exc_info()) |
| | File "/usr/lib64/
| | os.rmdir(path) |
| | ', u'created': u'2013-
cd /KVM/stack/
[root@cc be962096-
total 24340
drwxr-xr-x 2 nobody nobody 4096 Oct 18 2013 .
drwxrwxrwx 14 root root 4096 Oct 18 2013 ..
-rw-r--r-- 1 nobody nobody 25034752 Oct 18 2013 .nfs00000000071
description: | updated |
summary: |
- IOError occours when resize-confirm an instance with status + IOError occours when try to resize-confirm an instance with status 'VERIFY_RESIZE' using NFS bankend |
summary: |
IOError occours when try to resize-confirm an instance with status - 'VERIFY_RESIZE' using NFS bankend + 'VERIFY_RESIZE' using NFS bankend (KVM) |
description: | updated |
description: | updated |
summary: |
- IOError occours when try to resize-confirm an instance with status + OSError occours when try to resize-confirm an instance with status 'VERIFY_RESIZE' using NFS bankend (KVM) |
Changed in nova: | |
assignee: | nobody → Chen Xiao (chenxiao) |
status: | New → In Progress |
Changed in nova: | |
milestone: | none → icehouse-2 |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | icehouse-2 → 2014.1 |
Sorry, I do not explain the detail 3080-4e86- 8a52-f8e642081d 15", can work well, and the instance's state will change to "VERIFY_RESIZE', Then I resize-confirm it, OpenStack will try to delete a directory which contains instance files (Debug to shutil. rmtree( target) ), but in NFS , the directory will be accessed by qemu-kvm, according NFS working mechanism, it will create .nfsxxxx in the directory, then show the error ""[Errno 39] Directory not empty:".
when executed command "nova resize ae6f9472-
These .nfs files are apparently created when you delete a directory that is accessed by a process. librelist. com/browser/ /libgit2/ 2012/4/ 3/file- locking- in-libgit2/ #7a19b8c37c5235 ddfd60ff8a137c9 4ef
http://
I see one discuss about NFS said, according to kernel nfs-client code, NFS will rename opening files to .nfsxxx, but every file it is about to unlink. Files that are not held open just then disappear so fast that it normally does not matter and you do not see the renamed file. Maybe in our case the files are not actually open, but the nfs just takes a while to send back an ack for the rpc call.
so use 'retry' to delete the useless files