yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #60423
[Bug 1655979] [NEW] NUMATopologyFilter modifies the provided RequestSpec
Public bug reported:
The 'NUMATopologyFilter' makes a call to 'numa_fit_instance_to_host' in
order to determine whether an instance with a sample topology could fit
on a given host. This function is provided with an InstanceNUMATopology
object, which was extracted from the RequestSpec provided to the filter.
However, the 'numa_fit_instance_to_host' call has the side effect of
modifying a couple of fields on this InstanceNUMATopology object,
notably the pinning information, which appears to be propagated to
subsequent calls of the filter. The reason for this propagation is
presumably Python's "call-by-object" model [1].
We should ensure the original RequestSpec is not modified, thus
preventing possible issues in the future.
[1] https://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-
callbyreference-neither/
** Affects: nova
Importance: Undecided
Assignee: Stephen Finucane (stephenfinucane)
Status: In Progress
--
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/1655979
Title:
NUMATopologyFilter modifies the provided RequestSpec
Status in OpenStack Compute (nova):
In Progress
Bug description:
The 'NUMATopologyFilter' makes a call to 'numa_fit_instance_to_host'
in order to determine whether an instance with a sample topology could
fit on a given host. This function is provided with an
InstanceNUMATopology object, which was extracted from the RequestSpec
provided to the filter. However, the 'numa_fit_instance_to_host' call
has the side effect of modifying a couple of fields on this
InstanceNUMATopology object, notably the pinning information, which
appears to be propagated to subsequent calls of the filter. The reason
for this propagation is presumably Python's "call-by-object" model
[1].
We should ensure the original RequestSpec is not modified, thus
preventing possible issues in the future.
[1] https://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-
callbyreference-neither/
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1655979/+subscriptions
Follow ups