← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1304600] [NEW] network topology crashes with timing issue

 

Public bug reported:

Due to a timing issue, the network topology page can issue a 500 error
if a subnet is deleted at the inopportune moment.

Inside openstack_dashboard/dashboards/project/network_topology/views.py
---> JSONView.get method

neutron_networks = api.neutron.network_list_for_tenant(
                request,
                request.user.tenant_id)

This can return a list of network objects whose subnet list can be
[None]

Later, we attempt to iterate over that list and pull the .cidr attribute
off each element:

...
                    'subnets': [{'cidr': subnet.cidr}
                                for subnet in network.subnets],
...

Obviously, None doesn't have a .cidr attribute.


The real cause is inside the api.neutron.network_list_for_tenant call above.  Each network's list of subnets should never include None.

** Affects: horizon
     Importance: Undecided
     Assignee: Matthew D. Wood (woodm1979)
         Status: New

** Changed in: horizon
     Assignee: (unassigned) => Matthew D. Wood (woodm1979)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1304600

Title:
  network topology crashes with timing issue

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  Due to a timing issue, the network topology page can issue a 500 error
  if a subnet is deleted at the inopportune moment.

  Inside
  openstack_dashboard/dashboards/project/network_topology/views.py --->
  JSONView.get method

  neutron_networks = api.neutron.network_list_for_tenant(
                  request,
                  request.user.tenant_id)

  This can return a list of network objects whose subnet list can be
  [None]

  Later, we attempt to iterate over that list and pull the .cidr
  attribute off each element:

  ...
                      'subnets': [{'cidr': subnet.cidr}
                                  for subnet in network.subnets],
  ...

  Obviously, None doesn't have a .cidr attribute.

  
  The real cause is inside the api.neutron.network_list_for_tenant call above.  Each network's list of subnets should never include None.

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


Follow ups

References