← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1484290] [NEW] Neutron migration to Juno breaks router functionality if ports in tenant other than router

 

Public bug reported:

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]>

** Affects: neutron
     Importance: Undecided
         Status: New

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

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

Status in neutron:
  New

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]>

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


Follow ups