yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #27131
[Bug 1413119] Re: Pre-migration memory check- Invalid error message if memory value is 0
It sounds like the deeper issue is how the memory stat going to 0 for
the instance, and if it went to ERROR state or not. This should never
happen. Marking this bug as invalid and we should instead open a
separate bug on how to prevent us from getting stuck in that state. If
memory goes to 0 the instance should be in ERROR state.
** Changed in: nova
Status: New => Invalid
--
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/1413119
Title:
Pre-migration memory check- Invalid error message if memory value is
0
Status in OpenStack Compute (Nova):
Invalid
Bug description:
There is possible correction in the logic and error handling in the pre-migration memory check in case when the memory value is zero '0'.
This check is present in the source code class: nova/conductor/tasks/live_migrate.py
Below is the current code snippet:
if not mem_inst or avail <= mem_inst:
instance_uuid = self.instance.uuid
dest = self.destination
reason = _("Unable to migrate %(instance_uuid)s to %(dest)s: "
"Lack of memory(host:%(avail)s <= "
"instance:%(mem_inst)s)")
raise exception.MigrationPreCheckError(reason=reason % dict(
instance_uuid=instance_uuid, dest=dest, avail=avail,
mem_inst=mem_inst))
It can be seen that when mem_inst value is 0, the if condition is met and control enters the block resulting in 'lack of memory' error with a message 'avail memory < 0'. This is absurd.
Sample error message when memory is zero:
2014-10-13 19:52:09.441 3907 INFO nova.api.openstack.wsgi [req-8430dd30-4f17-4094-bbec-ec9cf3593c79 502 eec6e74886804b79b78ac4fceed5b685] NV-4EB7C79 HTTP exception thrown:
NV-78D5611 Migration pre-check error: NV-37B7976 Unable to migrate 352122ae-1ca1-43b3-8ba6-709d93fd580c to 9117MMB_100DBCP: Lack of memory(host:65536 <= instance:0)
The trailing end part of the error doesn't make much sense (host:65536
<= instance:0).
Possible correction:
The check should handle the special case of zero memory value in a different way. If memory equals zero, then a different error of exception should be raised about invalid memory.
Sample fix:
if mem_inst <= 0:
reason = _("Unable to migrate %(instance_uuid)s to %(dest)s: "
"Invalid value for existing instance memory: %(mem_inst)s.")
raise exception.MigrationPreCheckError(reason=reason % dict(
instance_uuid=instance_uuid, dest=dest, mem_inst=mem_inst))
elif avail <= mem_inst:
reason = _("Unable to migrate %(instance_uuid)s to %(dest)s: "
"Lack of memory available at destination. (host:%(avail)s <= "
"instance:%(mem_inst)s.")
raise exception.MigrationPreCheckError(reason=reason % dict(
instance_uuid=instance_uuid, dest=dest, avail=avail, mem_inst=mem_inst))
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1413119/+subscriptions
References