← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1982373] [NEW] nova/neutron ignore and overwrite custom device owner fields

 

Public bug reported:

nova/neutron ignore custom device owner fields when the device_id matches a nova server.  The fact that the device_owner field is set to something other than nova
is completely ignored.

Sequence of command line actions:
~~~
~~~
stack@standalone ~]$ openstack server list
+--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
| ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
+--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
| 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
| 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
~~~

~~~
# openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.200 TestPort
(...)
| id                      | 697f4773-7fe7-4d1b-9804-8fbb003b1194
(...)
# openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
(...)
| id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
(...)
~~~

Now, run this in a terminal:
~~~
while true ; do sleep 10 ; date ;  openstack port show 697f4773-7fe7-4d1b-9804-8fbb003b1194 | grep device_owner; done
Wed Jul 20 14:21:26 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:21:38 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:21:51 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:22:03 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:22:15 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:22:28 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:22:40 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
(...)
~~~

In another terminal, delete and recreate the second port:
~~~
[stack@standalone ~]$ openstack port delete bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
[stack@standalone ~]$ openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
(...)
| id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
(...)
~~~

Check in the terminal that's running the while loop:
~~~
Wed Jul 20 14:22:53 UTC 2022
| device_owner            | TestOwner                                                                                                                                                                                |
Wed Jul 20 14:23:05 UTC 2022
| device_owner            | compute:nova       
~~~

That update of device_owner sometimes happens on port delete of the unrelated port, and sometimes on port create. My expectation is that if I set a custom device_owner, then neutron and nova *must* ignore the port. The port should
not be owned by nova.

Here's the nova log:
~~~
2022-07-20 14:22:46.921 7 DEBUG nova.compute.resource_tracker [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Compute_service record updated for standalone.shiftstack:standalone.shiftstack _update_available_resource /usr/lib/python3.6/site-packages/nova/compute/resource_tracker.py:1014
2022-07-20 14:22:46.922 7 DEBUG oslo_concurrency.lockutils [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Lock "compute_resources" released by "nova.compute.resource_tracker.ResourceTracker._update_available_resource" :: held 0.148s inner /usr/lib/python3.6/site-packages/oslo_concurrency/lockutils.py:339
2022-07-20 14:22:49.923 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._poll_volume_usage run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
2022-07-20 14:22:59.692 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._heal_instance_info_cache run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
2022-07-20 14:22:59.693 7 DEBUG nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Starting heal instance info cache _heal_instance_info_cache /usr/lib/python3.6/site-packages/nova/compute/manager.py:8174
2022-07-20 14:22:59.824 7 INFO nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating ports in neutron
2022-07-20 14:22:59.902 7 INFO nova.network.neutronv2.api [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating port 697f4773-7fe7-4d1b-9804-8fbb003b1194 with attributes {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}
~~~

Here's the neutron log:
~~~
2022-07-20 14:22:39.870 20 INFO neutron.wsgi [req-98b0fac3-e4a5-46d3-aad7-62a2236ce6ee 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&id=c11abfc0-cfc2-4da9-9190-0be95091366f&fields=id&fields=name HTTP/1.1" status: 200  len: 421 time: 0.0356803
2022-07-20 14:22:40.815 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 47784) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:40.820 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039480
2022-07-20 14:22:42.118 15 INFO neutron.wsgi [req-ac055ae8-b098-49b7-9b45-6aba9909b8b6 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=985a609a-1fdd-4f48-b996-9311883c33a2 HTTP/1.1" status: 200  len: 1731 time: 0.0708601
2022-07-20 14:22:42.153 15 INFO neutron.wsgi [req-9e2ab1ff-662a-4220-97f4-5cc3c1877072 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0297492
2022-07-20 14:22:42.710 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47842) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:42.821 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47854) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:42.825 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038159
2022-07-20 14:22:42.832 26 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
2022-07-20 14:22:42.834 26 INFO neutron.wsgi [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1226606
2022-07-20 14:22:44.825 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47884) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:44.830 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039763
2022-07-20 14:22:46.831 23 DEBUG neutron.wsgi [-] (23) accepted ('192.168.24.1', 47914) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:46.836 23 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040467
2022-07-20 14:22:47.293 25 DEBUG neutron.wsgi [-] (25) accepted ('192.168.24.1', 47936) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:47.298 25 INFO neutron.wsgi [-] 192.168.24.1 "GET / HTTP/1.1" status: 200  len: 230 time: 0.0040886
2022-07-20 14:22:47.689 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47956) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:47.758 19 INFO neutron.wsgi [req-5590b0ef-5cb1-4250-9415-1b7a5046c83f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=a8c6e8f6-bf70-46e8-b493-64dd75ec3f4c HTTP/1.1" status: 200  len: 1687 time: 0.0679154
2022-07-20 14:22:47.798 19 INFO neutron.wsgi [req-a0f331aa-ea16-4109-9549-b2b0d1dfcb18 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0335498
2022-07-20 14:22:48.836 21 DEBUG neutron.wsgi [-] (21) accepted ('192.168.24.1', 47998) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:48.843 21 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0055552
2022-07-20 14:22:49.360 40 DEBUG futurist.periodics [req-74ee1d8f-facb-46df-99b3-4bb32b3bd974 - - - - -] Submitting periodic callback 'networking_ovn.common.maintenance.HashRingHealthCheckPeriodics.touch_hash_ring_nodes' _process_scheduled /usr/lib/python3.6/site-packages/futurist/periodics.py:639
2022-07-20 14:22:50.844 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48028) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:50.849 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040784
2022-07-20 14:22:52.551 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48080) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:52.610 26 INFO neutron.wsgi [req-eea28ab2-048e-45c3-97a9-8177c334b0db 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=3ab033ee-130c-4029-aaf9-9970a1dd251e HTTP/1.1" status: 200  len: 1687 time: 0.0582962
2022-07-20 14:22:52.645 26 INFO neutron.wsgi [req-edfe652a-5f86-40db-946e-b1ab85a5498a 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0299938
2022-07-20 14:22:52.851 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48102) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:52.856 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0037839
2022-07-20 14:22:53.546 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48128) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:53.677 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
2022-07-20 14:22:53.682 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
2022-07-20 14:22:53.684 19 INFO neutron.wsgi [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2505 time: 0.1370742
2022-07-20 14:22:53.727 19 INFO neutron.wsgi [req-57f04ddc-3a88-42fb-9fd8-5b21f110b543 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0374284
2022-07-20 14:22:54.857 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48166) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:54.862 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038559
2022-07-20 14:22:55.058 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48170) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:55.249 17 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
2022-07-20 14:22:55.251 17 INFO neutron.wsgi [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1918929
2022-07-20 14:22:56.864 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48206) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:56.869 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040827
2022-07-20 14:22:57.190 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48220) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:57.361 24 INFO neutron.wsgi [req-4a6f7ab2-8871-41e8-bd37-fa8327932026 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2780 time: 0.1701272
2022-07-20 14:22:57.398 24 INFO neutron.wsgi [req-00e35342-cec0-43a2-a0ef-1aeee51cc011 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0303874
2022-07-20 14:22:58.221 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48260) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:58.281 24 INFO neutron.wsgi [req-cd19af07-998c-42b8-9ec6-d511ba6f967f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=b5b2744c-7ba5-488f-aeda-9010bba76333 HTTP/1.1" status: 200  len: 1685 time: 0.0587666
2022-07-20 14:22:58.319 24 INFO neutron.wsgi [req-8112e29d-cf66-4a48-b0c9-6b0a6afe2bd9 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0322490
2022-07-20 14:22:58.427 41 DEBUG neutron.db.agents_db [req-21ee3101-2029-4ae1-9995-5052eb52b6f9 - - - - -] Agent healthcheck: found 0 active agents agent_health_check /usr/lib/python3.6/site-packages/neutron/db/agents_db.py:330
2022-07-20 14:22:58.871 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48276) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:58.876 15 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0042126
2022-07-20 14:22:59.752 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48300) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
2022-07-20 14:22:59.822 15 INFO neutron.wsgi [req-b4d99106-f4fd-4a89-9de2-ea816a674200 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&fields=binding%3Ahost_id&fields=binding%3Avif_type HTTP/1.1" status: 200  len: 307 time: 0.0691597
2022-07-20 14:22:59.901 15 INFO neutron.wsgi [req-8f1be0df-8b7e-4e92-bb19-3d1c85afdd51 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&tenant_id=6f69c87fe95b469c8c7709382818acf6 HTTP/1.1" status: 200  len: 2780 time: 0.0734348
2022-07-20 14:22:59.911 15 DEBUG neutron.api.v2.base [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Request body: {'port': {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}} prepare_request_body /usr/lib/python3.6/site-packages/neutron/api/v2/base.py:719
2022-07-20 14:22:59.998 15 DEBUG neutron_lib.callbacks.manager [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Notify callbacks ['neutron.plugins.ml2.plugin.SecurityGroupDbMixin._ensure_default_security_group_handler-3170459', 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin._port_update--9223363258570713375'] for port, before_update _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
2022-07-20 14:23:00.300 15 DEBUG neutron.notifiers.nova [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Ignoring state change previous_port_status: DOWN current_port_status: DOWN port_id 697f4773-7fe7-4d1b-9804-8fbb003b1194 record_port_status_changed /usr/lib/python3.6/site-packages/neutron/notifiers/nova.py:229
~~~

If you check after a while, the port is actually bound now to the instance:
~~~
stack@standalone ~]$ openstack server list
+--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
| ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
+--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
| 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
| 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
~~~

** Affects: neutron
     Importance: Undecided
         Status: New

** Summary changed:

- nova/neutron ignore custom device owner fields
+ nova/neutron ignore and overwrite custom device owner fields

** Description changed:

- nova/neutron ignore custom device owner fields
+ nova/neutron ignore custom device owner fields when the device_id
+ matches a nova server.
  
  Sequence of command line actions:
  ~~~
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.200 TestPort
  (...)
  | id                      | 697f4773-7fe7-4d1b-9804-8fbb003b1194
  (...)
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~
  
  Now, run this in a terminal:
  ~~~
  while true ; do sleep 10 ; date ;  openstack port show 697f4773-7fe7-4d1b-9804-8fbb003b1194 | grep device_owner; done
  Wed Jul 20 14:21:26 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:38 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:51 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:03 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:15 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:28 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:40 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  (...)
  ~~~
  
  In another terminal, delete and recreate the second port:
  ~~~
  [stack@standalone ~]$ openstack port delete bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  [stack@standalone ~]$ openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~
  
  Check in the terminal that's running the while loop:
  ~~~
  Wed Jul 20 14:22:53 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:23:05 UTC 2022
- | device_owner            | compute:nova       
+ | device_owner            | compute:nova
  ~~~
  
  That update of device_owner sometimes happens on port delete of the unrelated port, and sometimes on port create. My expectation is that if I set a custom device_owner, then neutron and nova *must* ignore the port. The port should
  not be owned by nova.
  
  Here's the nova log:
  ~~~
  2022-07-20 14:22:46.921 7 DEBUG nova.compute.resource_tracker [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Compute_service record updated for standalone.shiftstack:standalone.shiftstack _update_available_resource /usr/lib/python3.6/site-packages/nova/compute/resource_tracker.py:1014
  2022-07-20 14:22:46.922 7 DEBUG oslo_concurrency.lockutils [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Lock "compute_resources" released by "nova.compute.resource_tracker.ResourceTracker._update_available_resource" :: held 0.148s inner /usr/lib/python3.6/site-packages/oslo_concurrency/lockutils.py:339
  2022-07-20 14:22:49.923 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._poll_volume_usage run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.692 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._heal_instance_info_cache run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.693 7 DEBUG nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Starting heal instance info cache _heal_instance_info_cache /usr/lib/python3.6/site-packages/nova/compute/manager.py:8174
  2022-07-20 14:22:59.824 7 INFO nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating ports in neutron
  2022-07-20 14:22:59.902 7 INFO nova.network.neutronv2.api [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating port 697f4773-7fe7-4d1b-9804-8fbb003b1194 with attributes {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}
  ~~~
  
  Here's the neutron log:
  ~~~
  2022-07-20 14:22:39.870 20 INFO neutron.wsgi [req-98b0fac3-e4a5-46d3-aad7-62a2236ce6ee 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&id=c11abfc0-cfc2-4da9-9190-0be95091366f&fields=id&fields=name HTTP/1.1" status: 200  len: 421 time: 0.0356803
  2022-07-20 14:22:40.815 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 47784) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:40.820 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039480
  2022-07-20 14:22:42.118 15 INFO neutron.wsgi [req-ac055ae8-b098-49b7-9b45-6aba9909b8b6 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=985a609a-1fdd-4f48-b996-9311883c33a2 HTTP/1.1" status: 200  len: 1731 time: 0.0708601
  2022-07-20 14:22:42.153 15 INFO neutron.wsgi [req-9e2ab1ff-662a-4220-97f4-5cc3c1877072 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0297492
  2022-07-20 14:22:42.710 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47842) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.821 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47854) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.825 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038159
  2022-07-20 14:22:42.832 26 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:42.834 26 INFO neutron.wsgi [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1226606
  2022-07-20 14:22:44.825 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47884) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:44.830 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039763
  2022-07-20 14:22:46.831 23 DEBUG neutron.wsgi [-] (23) accepted ('192.168.24.1', 47914) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:46.836 23 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040467
  2022-07-20 14:22:47.293 25 DEBUG neutron.wsgi [-] (25) accepted ('192.168.24.1', 47936) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.298 25 INFO neutron.wsgi [-] 192.168.24.1 "GET / HTTP/1.1" status: 200  len: 230 time: 0.0040886
  2022-07-20 14:22:47.689 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47956) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.758 19 INFO neutron.wsgi [req-5590b0ef-5cb1-4250-9415-1b7a5046c83f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=a8c6e8f6-bf70-46e8-b493-64dd75ec3f4c HTTP/1.1" status: 200  len: 1687 time: 0.0679154
  2022-07-20 14:22:47.798 19 INFO neutron.wsgi [req-a0f331aa-ea16-4109-9549-b2b0d1dfcb18 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0335498
  2022-07-20 14:22:48.836 21 DEBUG neutron.wsgi [-] (21) accepted ('192.168.24.1', 47998) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:48.843 21 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0055552
  2022-07-20 14:22:49.360 40 DEBUG futurist.periodics [req-74ee1d8f-facb-46df-99b3-4bb32b3bd974 - - - - -] Submitting periodic callback 'networking_ovn.common.maintenance.HashRingHealthCheckPeriodics.touch_hash_ring_nodes' _process_scheduled /usr/lib/python3.6/site-packages/futurist/periodics.py:639
  2022-07-20 14:22:50.844 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48028) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:50.849 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040784
  2022-07-20 14:22:52.551 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48080) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.610 26 INFO neutron.wsgi [req-eea28ab2-048e-45c3-97a9-8177c334b0db 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=3ab033ee-130c-4029-aaf9-9970a1dd251e HTTP/1.1" status: 200  len: 1687 time: 0.0582962
  2022-07-20 14:22:52.645 26 INFO neutron.wsgi [req-edfe652a-5f86-40db-946e-b1ab85a5498a 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0299938
  2022-07-20 14:22:52.851 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48102) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.856 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0037839
  2022-07-20 14:22:53.546 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48128) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:53.677 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.682 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.684 19 INFO neutron.wsgi [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2505 time: 0.1370742
  2022-07-20 14:22:53.727 19 INFO neutron.wsgi [req-57f04ddc-3a88-42fb-9fd8-5b21f110b543 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0374284
  2022-07-20 14:22:54.857 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48166) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:54.862 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038559
  2022-07-20 14:22:55.058 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48170) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:55.249 17 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:55.251 17 INFO neutron.wsgi [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1918929
  2022-07-20 14:22:56.864 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48206) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:56.869 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040827
  2022-07-20 14:22:57.190 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48220) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:57.361 24 INFO neutron.wsgi [req-4a6f7ab2-8871-41e8-bd37-fa8327932026 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2780 time: 0.1701272
  2022-07-20 14:22:57.398 24 INFO neutron.wsgi [req-00e35342-cec0-43a2-a0ef-1aeee51cc011 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0303874
  2022-07-20 14:22:58.221 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48260) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.281 24 INFO neutron.wsgi [req-cd19af07-998c-42b8-9ec6-d511ba6f967f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=b5b2744c-7ba5-488f-aeda-9010bba76333 HTTP/1.1" status: 200  len: 1685 time: 0.0587666
  2022-07-20 14:22:58.319 24 INFO neutron.wsgi [req-8112e29d-cf66-4a48-b0c9-6b0a6afe2bd9 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0322490
  2022-07-20 14:22:58.427 41 DEBUG neutron.db.agents_db [req-21ee3101-2029-4ae1-9995-5052eb52b6f9 - - - - -] Agent healthcheck: found 0 active agents agent_health_check /usr/lib/python3.6/site-packages/neutron/db/agents_db.py:330
  2022-07-20 14:22:58.871 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48276) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.876 15 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0042126
  2022-07-20 14:22:59.752 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48300) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:59.822 15 INFO neutron.wsgi [req-b4d99106-f4fd-4a89-9de2-ea816a674200 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&fields=binding%3Ahost_id&fields=binding%3Avif_type HTTP/1.1" status: 200  len: 307 time: 0.0691597
  2022-07-20 14:22:59.901 15 INFO neutron.wsgi [req-8f1be0df-8b7e-4e92-bb19-3d1c85afdd51 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&tenant_id=6f69c87fe95b469c8c7709382818acf6 HTTP/1.1" status: 200  len: 2780 time: 0.0734348
  2022-07-20 14:22:59.911 15 DEBUG neutron.api.v2.base [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Request body: {'port': {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}} prepare_request_body /usr/lib/python3.6/site-packages/neutron/api/v2/base.py:719
  2022-07-20 14:22:59.998 15 DEBUG neutron_lib.callbacks.manager [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Notify callbacks ['neutron.plugins.ml2.plugin.SecurityGroupDbMixin._ensure_default_security_group_handler-3170459', 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin._port_update--9223363258570713375'] for port, before_update _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
  2022-07-20 14:23:00.300 15 DEBUG neutron.notifiers.nova [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Ignoring state change previous_port_status: DOWN current_port_status: DOWN port_id 697f4773-7fe7-4d1b-9804-8fbb003b1194 record_port_status_changed /usr/lib/python3.6/site-packages/neutron/notifiers/nova.py:229
  ~~~

** Description changed:

- nova/neutron ignore custom device owner fields when the device_id
- matches a nova server.
+ nova/neutron ignore custom device owner fields when the device_id matches a nova server.  The fact that the device_owner field is set to something other than nova
+ is completely ignored.
  
  Sequence of command line actions:
+ ~~~
+ ~~~
+ stack@standalone ~]$ openstack server list
+ +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
+ | ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
+ +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
+ | 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
+ | 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
+ ~~~
+ 
  ~~~
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.200 TestPort
  (...)
  | id                      | 697f4773-7fe7-4d1b-9804-8fbb003b1194
  (...)
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~
  
  Now, run this in a terminal:
  ~~~
  while true ; do sleep 10 ; date ;  openstack port show 697f4773-7fe7-4d1b-9804-8fbb003b1194 | grep device_owner; done
  Wed Jul 20 14:21:26 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:38 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:51 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:03 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:15 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:28 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:40 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  (...)
  ~~~
  
  In another terminal, delete and recreate the second port:
  ~~~
  [stack@standalone ~]$ openstack port delete bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  [stack@standalone ~]$ openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~
  
  Check in the terminal that's running the while loop:
  ~~~
  Wed Jul 20 14:22:53 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:23:05 UTC 2022
- | device_owner            | compute:nova
+ | device_owner            | compute:nova       
  ~~~
  
  That update of device_owner sometimes happens on port delete of the unrelated port, and sometimes on port create. My expectation is that if I set a custom device_owner, then neutron and nova *must* ignore the port. The port should
  not be owned by nova.
  
  Here's the nova log:
  ~~~
  2022-07-20 14:22:46.921 7 DEBUG nova.compute.resource_tracker [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Compute_service record updated for standalone.shiftstack:standalone.shiftstack _update_available_resource /usr/lib/python3.6/site-packages/nova/compute/resource_tracker.py:1014
  2022-07-20 14:22:46.922 7 DEBUG oslo_concurrency.lockutils [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Lock "compute_resources" released by "nova.compute.resource_tracker.ResourceTracker._update_available_resource" :: held 0.148s inner /usr/lib/python3.6/site-packages/oslo_concurrency/lockutils.py:339
  2022-07-20 14:22:49.923 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._poll_volume_usage run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.692 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._heal_instance_info_cache run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.693 7 DEBUG nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Starting heal instance info cache _heal_instance_info_cache /usr/lib/python3.6/site-packages/nova/compute/manager.py:8174
  2022-07-20 14:22:59.824 7 INFO nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating ports in neutron
  2022-07-20 14:22:59.902 7 INFO nova.network.neutronv2.api [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating port 697f4773-7fe7-4d1b-9804-8fbb003b1194 with attributes {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}
  ~~~
  
  Here's the neutron log:
  ~~~
  2022-07-20 14:22:39.870 20 INFO neutron.wsgi [req-98b0fac3-e4a5-46d3-aad7-62a2236ce6ee 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&id=c11abfc0-cfc2-4da9-9190-0be95091366f&fields=id&fields=name HTTP/1.1" status: 200  len: 421 time: 0.0356803
  2022-07-20 14:22:40.815 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 47784) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:40.820 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039480
  2022-07-20 14:22:42.118 15 INFO neutron.wsgi [req-ac055ae8-b098-49b7-9b45-6aba9909b8b6 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=985a609a-1fdd-4f48-b996-9311883c33a2 HTTP/1.1" status: 200  len: 1731 time: 0.0708601
  2022-07-20 14:22:42.153 15 INFO neutron.wsgi [req-9e2ab1ff-662a-4220-97f4-5cc3c1877072 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0297492
  2022-07-20 14:22:42.710 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47842) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.821 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47854) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.825 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038159
  2022-07-20 14:22:42.832 26 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:42.834 26 INFO neutron.wsgi [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1226606
  2022-07-20 14:22:44.825 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47884) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:44.830 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039763
  2022-07-20 14:22:46.831 23 DEBUG neutron.wsgi [-] (23) accepted ('192.168.24.1', 47914) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:46.836 23 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040467
  2022-07-20 14:22:47.293 25 DEBUG neutron.wsgi [-] (25) accepted ('192.168.24.1', 47936) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.298 25 INFO neutron.wsgi [-] 192.168.24.1 "GET / HTTP/1.1" status: 200  len: 230 time: 0.0040886
  2022-07-20 14:22:47.689 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47956) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.758 19 INFO neutron.wsgi [req-5590b0ef-5cb1-4250-9415-1b7a5046c83f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=a8c6e8f6-bf70-46e8-b493-64dd75ec3f4c HTTP/1.1" status: 200  len: 1687 time: 0.0679154
  2022-07-20 14:22:47.798 19 INFO neutron.wsgi [req-a0f331aa-ea16-4109-9549-b2b0d1dfcb18 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0335498
  2022-07-20 14:22:48.836 21 DEBUG neutron.wsgi [-] (21) accepted ('192.168.24.1', 47998) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:48.843 21 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0055552
  2022-07-20 14:22:49.360 40 DEBUG futurist.periodics [req-74ee1d8f-facb-46df-99b3-4bb32b3bd974 - - - - -] Submitting periodic callback 'networking_ovn.common.maintenance.HashRingHealthCheckPeriodics.touch_hash_ring_nodes' _process_scheduled /usr/lib/python3.6/site-packages/futurist/periodics.py:639
  2022-07-20 14:22:50.844 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48028) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:50.849 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040784
  2022-07-20 14:22:52.551 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48080) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.610 26 INFO neutron.wsgi [req-eea28ab2-048e-45c3-97a9-8177c334b0db 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=3ab033ee-130c-4029-aaf9-9970a1dd251e HTTP/1.1" status: 200  len: 1687 time: 0.0582962
  2022-07-20 14:22:52.645 26 INFO neutron.wsgi [req-edfe652a-5f86-40db-946e-b1ab85a5498a 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0299938
  2022-07-20 14:22:52.851 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48102) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.856 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0037839
  2022-07-20 14:22:53.546 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48128) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:53.677 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.682 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.684 19 INFO neutron.wsgi [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2505 time: 0.1370742
  2022-07-20 14:22:53.727 19 INFO neutron.wsgi [req-57f04ddc-3a88-42fb-9fd8-5b21f110b543 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0374284
  2022-07-20 14:22:54.857 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48166) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:54.862 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038559
  2022-07-20 14:22:55.058 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48170) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:55.249 17 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:55.251 17 INFO neutron.wsgi [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1918929
  2022-07-20 14:22:56.864 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48206) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:56.869 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040827
  2022-07-20 14:22:57.190 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48220) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:57.361 24 INFO neutron.wsgi [req-4a6f7ab2-8871-41e8-bd37-fa8327932026 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2780 time: 0.1701272
  2022-07-20 14:22:57.398 24 INFO neutron.wsgi [req-00e35342-cec0-43a2-a0ef-1aeee51cc011 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0303874
  2022-07-20 14:22:58.221 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48260) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.281 24 INFO neutron.wsgi [req-cd19af07-998c-42b8-9ec6-d511ba6f967f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=b5b2744c-7ba5-488f-aeda-9010bba76333 HTTP/1.1" status: 200  len: 1685 time: 0.0587666
  2022-07-20 14:22:58.319 24 INFO neutron.wsgi [req-8112e29d-cf66-4a48-b0c9-6b0a6afe2bd9 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0322490
  2022-07-20 14:22:58.427 41 DEBUG neutron.db.agents_db [req-21ee3101-2029-4ae1-9995-5052eb52b6f9 - - - - -] Agent healthcheck: found 0 active agents agent_health_check /usr/lib/python3.6/site-packages/neutron/db/agents_db.py:330
  2022-07-20 14:22:58.871 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48276) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.876 15 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0042126
  2022-07-20 14:22:59.752 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48300) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:59.822 15 INFO neutron.wsgi [req-b4d99106-f4fd-4a89-9de2-ea816a674200 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&fields=binding%3Ahost_id&fields=binding%3Avif_type HTTP/1.1" status: 200  len: 307 time: 0.0691597
  2022-07-20 14:22:59.901 15 INFO neutron.wsgi [req-8f1be0df-8b7e-4e92-bb19-3d1c85afdd51 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&tenant_id=6f69c87fe95b469c8c7709382818acf6 HTTP/1.1" status: 200  len: 2780 time: 0.0734348
  2022-07-20 14:22:59.911 15 DEBUG neutron.api.v2.base [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Request body: {'port': {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}} prepare_request_body /usr/lib/python3.6/site-packages/neutron/api/v2/base.py:719
  2022-07-20 14:22:59.998 15 DEBUG neutron_lib.callbacks.manager [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Notify callbacks ['neutron.plugins.ml2.plugin.SecurityGroupDbMixin._ensure_default_security_group_handler-3170459', 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin._port_update--9223363258570713375'] for port, before_update _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
  2022-07-20 14:23:00.300 15 DEBUG neutron.notifiers.nova [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Ignoring state change previous_port_status: DOWN current_port_status: DOWN port_id 697f4773-7fe7-4d1b-9804-8fbb003b1194 record_port_status_changed /usr/lib/python3.6/site-packages/neutron/notifiers/nova.py:229
  ~~~
+ 
+ If you check after a while, the port is actually bound now to the instance:
+ ~~~
+ stack@standalone ~]$ openstack server list
+ +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
+ | ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
+ +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
+ | 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
+ | 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
+ ~~~

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

Title:
  nova/neutron ignore and overwrite custom device owner fields

Status in neutron:
  New

Bug description:
  nova/neutron ignore custom device owner fields when the device_id matches a nova server.  The fact that the device_owner field is set to something other than nova
  is completely ignored.

  Sequence of command line actions:
  ~~~
  ~~~
  stack@standalone ~]$ openstack server list
  +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
  | ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
  +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
  | 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
  | 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
  ~~~

  ~~~
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.200 TestPort
  (...)
  | id                      | 697f4773-7fe7-4d1b-9804-8fbb003b1194
  (...)
  # openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~

  Now, run this in a terminal:
  ~~~
  while true ; do sleep 10 ; date ;  openstack port show 697f4773-7fe7-4d1b-9804-8fbb003b1194 | grep device_owner; done
  Wed Jul 20 14:21:26 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:38 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:21:51 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:03 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:15 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:28 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:22:40 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  (...)
  ~~~

  In another terminal, delete and recreate the second port:
  ~~~
  [stack@standalone ~]$ openstack port delete bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  [stack@standalone ~]$ openstack port create --network ed889e25-f8fa-4684-a9c4-54fff8de37b8  --device 382c107f-a082-4e9b-8adb-2ba45323c479 --device-owner TestOwner --fixed-ip subnet=ba4e5cdb-a0e3-47f2-9233-47d5a444412c,ip-address=10.196.100.201 TestPort2
  (...)
  | id                      | bc22dfa9-90fa-4d70-84a8-ec3a41ea2305
  (...)
  ~~~

  Check in the terminal that's running the while loop:
  ~~~
  Wed Jul 20 14:22:53 UTC 2022
  | device_owner            | TestOwner                                                                                                                                                                                |
  Wed Jul 20 14:23:05 UTC 2022
  | device_owner            | compute:nova       
  ~~~

  That update of device_owner sometimes happens on port delete of the unrelated port, and sometimes on port create. My expectation is that if I set a custom device_owner, then neutron and nova *must* ignore the port. The port should
  not be owned by nova.

  Here's the nova log:
  ~~~
  2022-07-20 14:22:46.921 7 DEBUG nova.compute.resource_tracker [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Compute_service record updated for standalone.shiftstack:standalone.shiftstack _update_available_resource /usr/lib/python3.6/site-packages/nova/compute/resource_tracker.py:1014
  2022-07-20 14:22:46.922 7 DEBUG oslo_concurrency.lockutils [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Lock "compute_resources" released by "nova.compute.resource_tracker.ResourceTracker._update_available_resource" :: held 0.148s inner /usr/lib/python3.6/site-packages/oslo_concurrency/lockutils.py:339
  2022-07-20 14:22:49.923 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._poll_volume_usage run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.692 7 DEBUG oslo_service.periodic_task [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Running periodic task ComputeManager._heal_instance_info_cache run_periodic_tasks /usr/lib/python3.6/site-packages/oslo_service/periodic_task.py:217
  2022-07-20 14:22:59.693 7 DEBUG nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] Starting heal instance info cache _heal_instance_info_cache /usr/lib/python3.6/site-packages/nova/compute/manager.py:8174
  2022-07-20 14:22:59.824 7 INFO nova.compute.manager [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating ports in neutron
  2022-07-20 14:22:59.902 7 INFO nova.network.neutronv2.api [req-bbeaf0b6-076a-4daa-a193-966515a9fd4d - - - - -] [instance: 382c107f-a082-4e9b-8adb-2ba45323c479] Updating port 697f4773-7fe7-4d1b-9804-8fbb003b1194 with attributes {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}
  ~~~

  Here's the neutron log:
  ~~~
  2022-07-20 14:22:39.870 20 INFO neutron.wsgi [req-98b0fac3-e4a5-46d3-aad7-62a2236ce6ee 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&id=c11abfc0-cfc2-4da9-9190-0be95091366f&fields=id&fields=name HTTP/1.1" status: 200  len: 421 time: 0.0356803
  2022-07-20 14:22:40.815 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 47784) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:40.820 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039480
  2022-07-20 14:22:42.118 15 INFO neutron.wsgi [req-ac055ae8-b098-49b7-9b45-6aba9909b8b6 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=985a609a-1fdd-4f48-b996-9311883c33a2 HTTP/1.1" status: 200  len: 1731 time: 0.0708601
  2022-07-20 14:22:42.153 15 INFO neutron.wsgi [req-9e2ab1ff-662a-4220-97f4-5cc3c1877072 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0297492
  2022-07-20 14:22:42.710 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47842) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.821 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 47854) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:42.825 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038159
  2022-07-20 14:22:42.832 26 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:42.834 26 INFO neutron.wsgi [req-58fe08dd-52ec-4749-882b-3d88e0587a95 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1226606
  2022-07-20 14:22:44.825 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47884) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:44.830 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0039763
  2022-07-20 14:22:46.831 23 DEBUG neutron.wsgi [-] (23) accepted ('192.168.24.1', 47914) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:46.836 23 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040467
  2022-07-20 14:22:47.293 25 DEBUG neutron.wsgi [-] (25) accepted ('192.168.24.1', 47936) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.298 25 INFO neutron.wsgi [-] 192.168.24.1 "GET / HTTP/1.1" status: 200  len: 230 time: 0.0040886
  2022-07-20 14:22:47.689 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 47956) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:47.758 19 INFO neutron.wsgi [req-5590b0ef-5cb1-4250-9415-1b7a5046c83f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=a8c6e8f6-bf70-46e8-b493-64dd75ec3f4c HTTP/1.1" status: 200  len: 1687 time: 0.0679154
  2022-07-20 14:22:47.798 19 INFO neutron.wsgi [req-a0f331aa-ea16-4109-9549-b2b0d1dfcb18 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0335498
  2022-07-20 14:22:48.836 21 DEBUG neutron.wsgi [-] (21) accepted ('192.168.24.1', 47998) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:48.843 21 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0055552
  2022-07-20 14:22:49.360 40 DEBUG futurist.periodics [req-74ee1d8f-facb-46df-99b3-4bb32b3bd974 - - - - -] Submitting periodic callback 'networking_ovn.common.maintenance.HashRingHealthCheckPeriodics.touch_hash_ring_nodes' _process_scheduled /usr/lib/python3.6/site-packages/futurist/periodics.py:639
  2022-07-20 14:22:50.844 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48028) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:50.849 26 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040784
  2022-07-20 14:22:52.551 26 DEBUG neutron.wsgi [-] (26) accepted ('192.168.24.1', 48080) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.610 26 INFO neutron.wsgi [req-eea28ab2-048e-45c3-97a9-8177c334b0db 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=3ab033ee-130c-4029-aaf9-9970a1dd251e HTTP/1.1" status: 200  len: 1687 time: 0.0582962
  2022-07-20 14:22:52.645 26 INFO neutron.wsgi [req-edfe652a-5f86-40db-946e-b1ab85a5498a 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0299938
  2022-07-20 14:22:52.851 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48102) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:52.856 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0037839
  2022-07-20 14:22:53.546 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48128) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:53.677 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.682 19 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:53.684 19 INFO neutron.wsgi [req-deab77df-6338-4baf-8af4-4d929e497163 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2505 time: 0.1370742
  2022-07-20 14:22:53.727 19 INFO neutron.wsgi [req-57f04ddc-3a88-42fb-9fd8-5b21f110b543 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0374284
  2022-07-20 14:22:54.857 19 DEBUG neutron.wsgi [-] (19) accepted ('192.168.24.1', 48166) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:54.862 19 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0038559
  2022-07-20 14:22:55.058 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48170) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:55.249 17 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] Attributes excluded by policy engine: ['binding:profile', 'binding:host_id', 'binding:vif_type', 'binding:vif_details', 'resource_request'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
  2022-07-20 14:22:55.251 17 INFO neutron.wsgi [req-b56174c6-fef7-47e0-9e09-2ab6e95f2b38 3c88c234ba004865bbae69a2a28f0dfe 6f69c87fe95b469c8c7709382818acf6 - default default] 192.168.24.1 "GET /v2.0/ports/697f4773-7fe7-4d1b-9804-8fbb003b1194 HTTP/1.1" status: 200  len: 1113 time: 0.1918929
  2022-07-20 14:22:56.864 17 DEBUG neutron.wsgi [-] (17) accepted ('192.168.24.1', 48206) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:56.869 17 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0040827
  2022-07-20 14:22:57.190 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48220) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:57.361 24 INFO neutron.wsgi [req-4a6f7ab2-8871-41e8-bd37-fa8327932026 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479 HTTP/1.1" status: 200  len: 2780 time: 0.1701272
  2022-07-20 14:22:57.398 24 INFO neutron.wsgi [req-00e35342-cec0-43a2-a0ef-1aeee51cc011 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=c11abfc0-cfc2-4da9-9190-0be95091366f&id=d426fa6b-74e1-4272-95c0-e7edd4978cef&fields=id&fields=name HTTP/1.1" status: 200  len: 342 time: 0.0303874
  2022-07-20 14:22:58.221 24 DEBUG neutron.wsgi [-] (24) accepted ('192.168.24.1', 48260) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.281 24 INFO neutron.wsgi [req-cd19af07-998c-42b8-9ec6-d511ba6f967f 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=b5b2744c-7ba5-488f-aeda-9010bba76333 HTTP/1.1" status: 200  len: 1685 time: 0.0587666
  2022-07-20 14:22:58.319 24 INFO neutron.wsgi [req-8112e29d-cf66-4a48-b0c9-6b0a6afe2bd9 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/security-groups?id=af5d2aba-ef74-49c0-a682-d44c87d77b8c&fields=id&fields=name HTTP/1.1" status: 200  len: 275 time: 0.0322490
  2022-07-20 14:22:58.427 41 DEBUG neutron.db.agents_db [req-21ee3101-2029-4ae1-9995-5052eb52b6f9 - - - - -] Agent healthcheck: found 0 active agents agent_health_check /usr/lib/python3.6/site-packages/neutron/db/agents_db.py:330
  2022-07-20 14:22:58.871 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48276) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:58.876 15 INFO neutron.wsgi [-] 192.168.24.1 "OPTIONS / HTTP/1.0" status: 200  len: 249 time: 0.0042126
  2022-07-20 14:22:59.752 15 DEBUG neutron.wsgi [-] (15) accepted ('192.168.24.1', 48300) server /usr/lib/python3.6/site-packages/eventlet/wsgi.py:985
  2022-07-20 14:22:59.822 15 INFO neutron.wsgi [req-b4d99106-f4fd-4a89-9de2-ea816a674200 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&fields=binding%3Ahost_id&fields=binding%3Avif_type HTTP/1.1" status: 200  len: 307 time: 0.0691597
  2022-07-20 14:22:59.901 15 INFO neutron.wsgi [req-8f1be0df-8b7e-4e92-bb19-3d1c85afdd51 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] 192.168.24.1 "GET /v2.0/ports?device_id=382c107f-a082-4e9b-8adb-2ba45323c479&tenant_id=6f69c87fe95b469c8c7709382818acf6 HTTP/1.1" status: 200  len: 2780 time: 0.0734348
  2022-07-20 14:22:59.911 15 DEBUG neutron.api.v2.base [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Request body: {'port': {'binding:host_id': 'standalone.shiftstack', 'device_owner': 'compute:nova'}} prepare_request_body /usr/lib/python3.6/site-packages/neutron/api/v2/base.py:719
  2022-07-20 14:22:59.998 15 DEBUG neutron_lib.callbacks.manager [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Notify callbacks ['neutron.plugins.ml2.plugin.SecurityGroupDbMixin._ensure_default_security_group_handler-3170459', 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin._port_update--9223363258570713375'] for port, before_update _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
  2022-07-20 14:23:00.300 15 DEBUG neutron.notifiers.nova [req-675bce9a-34b8-42f6-b2e6-b4edaa4743b5 2a48856776d2442092bdcc4899ae56ab 9271f2b667f444de93ee682198c394ac - default default] Ignoring state change previous_port_status: DOWN current_port_status: DOWN port_id 697f4773-7fe7-4d1b-9804-8fbb003b1194 record_port_status_changed /usr/lib/python3.6/site-packages/neutron/notifiers/nova.py:229
  ~~~

  If you check after a while, the port is actually bound now to the instance:
  ~~~
  stack@standalone ~]$ openstack server list
  +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
  | ID                                   | Name                        | Status | Networks                                                            | Image | Flavor    |
  +--------------------------------------+-----------------------------+--------+---------------------------------------------------------------------+-------+-----------+
  | 382c107f-a082-4e9b-8adb-2ba45323c479 | ostest-lq27s-worker-0-cz6gw | ACTIVE | ostest-lq27s-openshift=10.196.2.215                                 | rhcos | m1.large  |
  | 985a609a-1fdd-4f48-b996-9311883c33a2 | ostest-lq27s-worker-0-5vcxf | ACTIVE | ostest-lq27s-openshift=10.196.2.151                                 | rhcos | m1.large  |
  ~~~

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



Follow ups