Neutron migration to Juno breaks router functionality if ports in tenant other than router

Bug #1484290 reported by Kevin Stevens
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
neutron
Expired
Undecided
Unassigned

Bug Description

During recent upgrade from Icehouse to Juno, we lost all interfaces on the backside of the router. Plugging the appropriate values into the neutron.routerports table corrected the issue.

From /usr/local/lib/python2.7/dist-packages/neutron/db/migration/alembic_migrations/versions/544673ac99ab_add_router_port_table.py , I find the SQL statement to populate the routerports table:
...
SQL_STATEMENT = (
    "insert into routerports "
    "select "
    "p.device_id as router_id, p.id as port_id, p.device_owner as port_type "
    "from ports p join routers r on (p.device_id=r.id) "
    "where "
    "(r.tenant_id=p.tenant_id AND p.device_owner='network:router_interface') "
    "OR (p.tenant_id='' AND p.device_owner='network:router_gateway')"
)
...

Running the same statement reflects the status of the routerports table when the issue was discovered:

MariaDB [neutron]> select p.device_id as router_id, p.id as port_id, p.device_owner as port_type from ports p join routers r on (p.device_id=r.id) where (r.tenant_id=p.tenant_id AND p.device_owner='network:router_interface') OR (p.tenant_id='' AND p.device_owner='network:router_gateway');
+--------------------------------------+--------------------------------------+--------------------------+
| router_id | port_id | port_type |
+--------------------------------------+--------------------------------------+--------------------------+
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 7b280662-37eb-435e-bc20-37b9b824c0b1 | network:router_gateway |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 8db9bfd3-bd4a-4863-92ef-9c2dbdcbbc0f | network:router_interface |
+--------------------------------------+--------------------------------------+--------------------------+
2 rows in set (0.00 sec)

Removing tenant_id from the WHERE clause seems to be what should have happened. Not sure why we care what the tenant_id is:

MariaDB [neutron]> select p.device_id as router_id, p.id as port_id, p.device_owner as port_type from ports p join routers r on (p.device_id=r.id) where (p.device_owner='network:router_interface') OR (p.device_owner='network:router_gateway');
+--------------------------------------+--------------------------------------+--------------------------+
| router_id | port_id | port_type |
+--------------------------------------+--------------------------------------+--------------------------+
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 23f676d6-7e71-473a-9685-6955ad02d566 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 31412033-c2ac-4843-9cbe-0a580bac2463 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 39dbb96e-3862-4246-990f-4dc5d2d0e524 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 5c2f484f-75cc-4499-b464-7b44eea70376 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 630e7601-2997-447f-ad2c-c14fe5915fc3 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 6af57709-c40a-4070-a92a-b5c4e4895a05 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 796e8e72-0cde-4c02-9a3c-6eb7afc8393f | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 7b280662-37eb-435e-bc20-37b9b824c0b1 | network:router_gateway |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 8db9bfd3-bd4a-4863-92ef-9c2dbdcbbc0f | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 95fdb58d-1eb4-421f-8515-692c5bd22056 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | b19f4f0e-a31c-4fc7-b1f4-7d888ba2786d | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | cf1423db-ed37-4028-be57-a83e9e63803a | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | d0021fde-8cb2-4f52-88ef-a01cdb7104ea | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | edbc477f-a92b-46a5-9ae0-0a529541c248 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | f07d22db-bda7-4b88-aeae-07f63c7e28f4 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | f2e1b38b-f432-4579-8f14-dfeb9a3a4593 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | ffcc8003-f331-47d9-9619-bbaf35d9cb60 | network:router_interface |
+--------------------------------------+--------------------------------------+--------------------------+
17 rows in set (0.00 sec)

MariaDB [neutron]> select * from routerports;
+--------------------------------------+--------------------------------------+--------------------------+
| router_id | port_id | port_type |
+--------------------------------------+--------------------------------------+--------------------------+
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 23f676d6-7e71-473a-9685-6955ad02d566 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 31412033-c2ac-4843-9cbe-0a580bac2463 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 39dbb96e-3862-4246-990f-4dc5d2d0e524 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 5c2f484f-75cc-4499-b464-7b44eea70376 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 630e7601-2997-447f-ad2c-c14fe5915fc3 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 6af57709-c40a-4070-a92a-b5c4e4895a05 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 796e8e72-0cde-4c02-9a3c-6eb7afc8393f | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 7b280662-37eb-435e-bc20-37b9b824c0b1 | network:router_gateway |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 8db9bfd3-bd4a-4863-92ef-9c2dbdcbbc0f | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | 95fdb58d-1eb4-421f-8515-692c5bd22056 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | b19f4f0e-a31c-4fc7-b1f4-7d888ba2786d | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | cf1423db-ed37-4028-be57-a83e9e63803a | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | d0021fde-8cb2-4f52-88ef-a01cdb7104ea | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | edbc477f-a92b-46a5-9ae0-0a529541c248 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | f07d22db-bda7-4b88-aeae-07f63c7e28f4 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | f2e1b38b-f432-4579-8f14-dfeb9a3a4593 | network:router_interface |
| 8c5ca5e2-5dc1-4586-8bbe-601a394029fb | ffcc8003-f331-47d9-9619-bbaf35d9cb60 | network:router_interface |
+--------------------------------------+--------------------------------------+--------------------------+
17 rows in set (0.00 sec)

MariaDB [neutron]>

Tags: db ops
lvmxh (shaohef)
Changed in neutron:
assignee: nobody → lvmxh (shaohef)
tags: added: db
Tom Fifield (fifieldt)
tags: added: ops
Revision history for this message
Tom Fifield (fifieldt) wrote :

This bug featured in the Palo Alto Ops meetup in August 2015

lvmxh (shaohef)
Changed in neutron:
assignee: lvmxh (shaohef) → nobody
Revision history for this message
Toni Ylenius (toni-ylenius) wrote :

We also bumbed in to the issue after an upgrade. We had a internal gateway router that lost 50 ports in the upgrade. Just wanted to let you know that bug might be still relevant. However, in my opinion this can also be considered as known issue only.

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

This bug is > 180 days without activity. We are unsetting assignee and milestone and setting status to Incomplete in order to allow its expiry in 60 days.

If the bug is still valid, then update the bug status.

Changed in neutron:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for neutron because there has been no activity for 60 days.]

Changed in neutron:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.