← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1438738] Re: Nova boot fails with Error Code 500, if quota_port is < -1 in neutron.conf

 

I do not believe this is an issue that should be fixed in Nova. -1 has a
well understood 'unlimitted' value in openstack, and neutron definitely
shouldn't ever return a -2 over the network. Any data scrubbing here
should be on the neutron side.

** Also affects: neutron
   Importance: Undecided
       Status: New

** Changed in: nova
       Status: In Progress => Won't Fix

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1438738

Title:
  Nova boot fails with Error Code 500,  if quota_port is < -1 in
  neutron.conf

Status in OpenStack Neutron (virtual network service):
  New
Status in OpenStack Compute (Nova):
  Won't Fix

Bug description:
  I am running a scale environment where I needed to exceed the port
  quota count to unlimited.

  The neutron.conf documentation for the quota_port parameter states the
  following:

  # Number of ports allowed per tenant. A negative value means
  unlimited.

  Looking at this, I had set the value to -2 as:

  quota_port = -2

  After this, the nova boot started failing with Error code 500.

  The error stack is the following:

   TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line 1016, in create
   TRACE nova.api.openstack     server = self._view_builder.create(req, instances[0])
   TRACE nova.api.openstack IndexError: list index out of range
   TRACE nova.api.openstack

  The error is seen because in the /nova/network/neutronv2/api.py -
  validate_networks() method, the quota check is very strict in terms
  for the unlimited check:

              if quotas.get('port', -1) == -1:
                  # Unlimited Port Quota
                  return num_instances
              else:
                  free_ports = quotas.get('port') - len(ports)
                  ports_needed = ports_needed_per_instance * num_instances
                  if free_ports >= ports_needed:
                      return num_instances
                  else:
                      return free_ports // ports_needed_per_instance

  The above code would return free_ports - and that value is negative.

  Filing this bug to change the above check to something like:

              if quotas.get('port', -1) <= -1:
                  # Unlimited Port Quota
                  return num_instances

  This will allow nova to react correctly with the documentation in
  neutron as well.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1438738/+subscriptions


References