Bug 1652579 - juniper: cannot update two ports concurrently
Summary: juniper: cannot update two ports concurrently
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-networking-ansible
Version: 14.0 (Rocky)
Hardware: Unspecified
OS: Unspecified
high
urgent
Target Milestone: rc
: 14.0 (Rocky)
Assignee: Jakub Libosvar
QA Contact: Arkady Shtempler
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-22 12:20 UTC by Jakub Libosvar
Modified: 2019-02-01 10:40 UTC (History)
5 users (show)

Fixed In Version: python-networking-ansible-1.0.4-5.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-01-11 11:55:00 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
OpenStack Storyboard 619588 None None None 2018-11-22 16:33:24 UTC
OpenStack gerrit 619618 None None None 2018-11-24 18:16:42 UTC
Red Hat Product Errata RHEA-2019:0045 None None None 2019-01-11 11:55:11 UTC
Storyboard 2004409 None None None 2018-11-22 13:34:11 UTC

Description Jakub Libosvar 2018-11-22 12:20:28 UTC
Description of problem:
When updating two ports on a switch concurrently, one fails because the other one holds lock. We get traceback.

2018-11-22 00:10:37.222 26 ERROR networking_ansible.ansible_networking [req-7435b1fa-dabb-42e3-82da-131d694dfd05 61467bdcf96a4e2b84bffd08b769f11d 7c5ad5bd6d9d4369a0a8a981b51695e1 - default default] Failed to plug in port 5b52a594-c654-4e60-b3f7-9a5a341d53eb on device: junos from network dd73584d-56e8-4d92-b7cd-1be30cb56e56 reason: ^M
 PLAY [Openstack networking-ansible playbook] ***********************************
 ^M
 TASK [openstack-ml2 : check for required fact: port_name] **********************
 skipping: [junos]
 ^M
 TASK [openstack-ml2 : include and run device provider specific tasks] **********
 included: /usr/share/ansible/roles/openstack-ml2/tasks/run.yaml for junos
 ^M
 TASK [openstack-ml2 : include device role specific tasks] **********************
 included: /usr/share/ansible/roles/openstack-ml2/providers/junos/delete_port.yaml for junos
 ^M
 TASK [openstack-ml2 : junos: run delete_port using netconf] ********************
 included: /usr/share/ansible/roles/openstack-ml2/providers/junos/netconf.yaml for junos
 ^M
 TASK [openstack-ml2 : junos: enable netconf if not already enabled] ************
 ok: [junos]
 ^M
 TASK [openstack-ml2 : junos: set netconf template] *****************************
 ok: [junos]
 ^M
 TASK [openstack-ml2 : junos: send configuration to device] *********************
 An exception occurred during task execution. To see the full traceback, use -vvv. The error was:       exclusive^M
 fatal: [junos]: FAILED! => {"changed": false, "msg": "error editing configuration: \nconfiguration database locked by:\n  root terminal  (pid 3853) on since 2018-11-22 00:10:35 UTC\n      exclusive \n"}
 ^M
 PLAY RECAP *********************************************************************^M
 junos                      : ok=5    changed=0    unreachable=0    failed=1   ^M

: AnsibleRunnerException: ^M

Version-Release number of selected component (if applicable):
python2-networking-ansible-1.0.4-4

How reproducible:


Steps to Reproduce:
1. Create or delete two or more baremetal nodes at once

Actual results:
One port creation/deletion fails

Expected results:
Both actions succeed 

Additional info:
The worse scenario is when deleting a node because then vlan configuration is left on the switch port. Next attempt to change the vlan configuration hits the bug 1641963 which leaves the node completely unusable.

Comment 7 errata-xmlrpc 2019-01-11 11:55:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:0045


Note You need to log in before you can comment on or make changes to this bug.