| Summary: | ironic port-udate replace MAC adfress return error | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Eduard Barrera <ebarrera> |
| Component: | openstack-ironic | Assignee: | Lucas Alvares Gomes <lmartins> |
| Status: | CLOSED WONTFIX | QA Contact: | Raviv Bar-Tal <rbartal> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.0 (Liberty) | CC: | lmartins, maximilian.hoecker, mburns, rhel-osp-director-maint, srevivo |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-30 10:05:41 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
Hi Eduard, Thanks for the BZ. I understand this error can be annoying and the change have been backported to Mitaka (OSP-9) already [0]. Unfortunately we won't be backporting it to Liberty (OSP-8). The code for ports have changed quite a lot in the Mitaka release and on with the introduction of port groups, pxe_enabled attribute, etc... Making the backport quite trick, we probably would need to rewrite a good part of the patch. I'm closing this as WONTFIX for OSP-8. Feel free to re-open the bug if you think it's a must to have it in this version of OSP. Then we can think about a solution for the problem. [0] https://review.openstack.org/#/c/354735/ |
Description of problem: after replacing a malfunctioning ethernet interface, need to update the port in ironic. The following command is used: $ ironic port-update d6542373-79d1-4b7e-aaf5-1f529fefc2bb replace address=00:24:30:1b:81:c7 but it returns the following error: 2016-11-29 06:20:45.872 25989 DEBUG ironic.conductor.manager [req-5c597837-892a-42a1-93d5-5f7283ac1b37 - - - - -] RPC update_port called for port d6542373-79d1-4b7e-aaf5-1f529fefc2bb. update_port /usr/lib/python2.7/site-packages/ironic/conductor/manager.py:1713 2016-11-29 06:20:45.873 25989 DEBUG ironic.conductor.task_manager [req-5c597837-892a-42a1-93d5-5f7283ac1b37 - - - - -] Attempting to get exclusive lock on node 1 (for port update) __init__ /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:224 2016-11-29 06:20:45.884 25989 DEBUG ironic.conductor.task_manager [req-5c597837-892a-42a1-93d5-5f7283ac1b37 - - - - -] Node 8e7ffc15-5c0c-40bb-b0c8-80619a9f7fe3 successfully reserved for port update (took 0.01 seconds) reserve_node /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:266 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron [req-5c597837-892a-42a1-93d5-5f7283ac1b37 - - - - -] Failed to update MAC address on Neutron port 0e0c035f-667a-4360-95e0-474549cc0127. 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron Traceback (most recent call last): 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/ironic/dhcp/neutron.py", line 135, in update_port_address 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron _build_client(token).update_port(port_id, port_req_body) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 97, in with_params 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron ret = self.function(instance, *args, **kwargs) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 659, in update_port 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron return self.put(self.port_path % (port), body=body) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 367, in put 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron headers=headers, params=params) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 335, in retry_request 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron headers=headers, params=params) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 298, in do_request 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron self._handle_fault_response(status_code, replybody, resp) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 273, in _handle_fault_response 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron exception_handler_v20(status_code, error_body) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron File "/usr/lib/python2.7/site-packages/neutronclient/v2_0/client.py", line 84, in exception_handler_v20 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron request_ids=request_ids) 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron Conflict: Unable to complete operation on port 0e0c035f-667a-4360-95e0-474549cc0127, port is already bound, port type: ovs, old_mac 00:24:30:1b:81:c8, new_mac 00:24:30:1b:81:c7. 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron Neutron server returns request_ids: ['req-ada11c66-e845-4625-8e62-c6252ead7c25'] 2016-11-29 06:20:46.033 25989 ERROR ironic.dhcp.neutron 2016-11-29 06:20:46.039 25989 DEBUG ironic.conductor.task_manager [req-5c597837-892a-42a1-93d5-5f7283ac1b37 - - - - -] Successfully released exclusive lock for port update on node 8e7ffc15-5c0c-40bb-b0c8-80619a9f7fe3 (lock was held 0.15 sec) release_resources /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:338 Update MAC address on port: 0e0c035f-667a-4360-95e0-474549cc0127 failed. (HTTP 500) on the other hand if we type the current mac address it success: ironic port-update d6542373-79d1-4b7e-aaf5-1f529fefc2bb replace address=00:24:30:1b:81:c8 2016-11-29 06:20:42.007 25989 DEBUG ironic.conductor.manager [req-39db630c-b818-4fd8-a145-725ab315b821 - - - - -] RPC update_port called for port d6542373-79d1-4b7e-aaf5-1f529fefc2bb. update_port /usr/lib/python2.7/site-packages/ironic/conductor/manager.py:1713 2016-11-29 06:20:42.008 25989 DEBUG ironic.conductor.task_manager [req-39db630c-b818-4fd8-a145-725ab315b821 - - - - -] Attempting to get exclusive lock on node 1 (for port update) __init__ /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:224 2016-11-29 06:20:42.021 25989 DEBUG ironic.conductor.task_manager [req-39db630c-b818-4fd8-a145-725ab315b821 - - - - -] Node 8e7ffc15-5c0c-40bb-b0c8-80619a9f7fe3 successfully reserved for port update (took 0.01 seconds) reserve_node /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:266 2016-11-29 06:20:42.044 25989 DEBUG ironic.conductor.task_manager [req-39db630c-b818-4fd8-a145-725ab315b821 - - - - -] Successfully released exclusive lock for port update on node 8e7ffc15-5c0c-40bb-b0c8-80619a9f7fe3 (lock was held 0.02 sec) release_resources /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:338 +------------+-----------------------------------------------------------+ | Property | Value | +------------+-----------------------------------------------------------+ | address | 00:24:30:1b:81:c8 | | created_at | 2016-09-21T11:40:27+00:00 | | extra | {u'vif_port_id': u'0e0c035f-667a-4360-95e0-474549cc0127'} | | node_uuid | 8e7ffc15-5c0c-40bb-b0c8-80619a9f7fe3 | | updated_at | 2016-11-10T13:09:33+00:00 | | uuid | d6542373-79d1-4b7e-aaf5-1f529fefc2bb | +------------+-----------------------------------------------------------+ The following error appears on neutron server.log: 2016-11-29 06:28:47.040 3927 INFO neutron.api.v2.resource [req-4770384b-544b-49f8-a630-8a0a60bf7559 6b071ed5d00747d08d9a7ebf843d1e35 1cc0ddff5ee64174b9424572ed533eaf - - -] update failed (client error): Unable to complete operation on port 0e0c035f-667a-4360-95e0-474549cc0127, port is already bound, port type: ovs, old_mac 00:24:30:1b:81:c8, new_mac 00:24:30:1b:81:c7. Version-Release number of selected component (if applicable): reported for OSP 8 and reproducible on OSP9 How reproducible: always Steps to Reproduce: # ironic port-list +--------------------------------------+-------------------+ | UUID | Address | +--------------------------------------+-------------------+ | d6542373-79d1-4b7e-aaf5-1f529fefc2bb | 00:24:30:1b:81:c8 | | ac1fc5e8-a376-46b7-ab41-c5f09142c308 | 00:24:30:1b:81:cc | | 2b2f925e-6975-419b-89bd-387011ab09ca | 00:24:30:1b:81:d0 | | 96bd15b9-51c9-4937-a47a-1874773a0fe5 | 00:24:30:1b:81:d4 | +--------------------------------------+-------------------+ $ ironic port-update d6542373-79d1-4b7e-aaf5-1f529fefc2bb replace address=00:24:30:1b:81:c7 Update MAC address on port: 0e0c035f-667a-4360-95e0-474549cc0127 failed. (HTTP 500) Actual results: The error reported Expected results: MAC address changed Additional info: