quick retry connect to resolve stale ncclient handle

Bug #1481856 reported by Carol Bouchard
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-cisco
Fix Released
Undecided
Carol Bouchard
Kilo
Fix Committed
Undecided
Carol Bouchard
Liberty
Fix Released
Undecided
Carol Bouchard

Bug Description

The Cisco Nexus driver creates a connection to the switch and keeps it open for all configuration.
When the switch goes away, the cisco nexus driver is left with a stale connection and any attempts
to send configuration thru is will fail. We previously addressed this issue (ref: 1399998) by closing the
connection so next attempt will be successful. We relied on the next attempt to occur during replay
processing. With recent changes to replay code, we need to instead isolate this one time retry within
 the driver itself. That's what this bug will address.

Changed in networking-cisco:
assignee: nobody → Carol Bouchard (caboucha)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (master)

Fix proposed to branch: master
Review: https://review.openstack.org/211676

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (master)

Reviewed: https://review.openstack.org/211676
Committed: https://git.openstack.org/cgit/openstack/networking-cisco/commit/?id=46d364dc9f3b24e654939f822ea048e3cbf227c6
Submitter: Jenkins
Branch: master

commit 46d364dc9f3b24e654939f822ea048e3cbf227c6
Author: Carol Bouchard <email address hidden>
Date: Tue Aug 11 13:14:17 2015 -0400

    Quick retry connect to resolve stale ncclient handle

    When the Nexus switch reboots, OpenStack Nexus Driver will be left
    with a stale ncclient handle resulting in an exception. When an
    exception is encountered, another retry is performed within the driver.
    The first exception information is saved so if the second exception
    fails again, we report on the first exception.
    As part of this fix, I've removed code which supports 2 versions
    of ncclient since the older version no longer meets the version
    configured in our requirements.txt.

    Change-Id: I182440c3a19e7c57e4dfe69e4013ea7bf87aa7ab
    Closes-bug: #1481856

Changed in networking-cisco:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (stable/kilo)

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/217682

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (stable/kilo)

Reviewed: https://review.openstack.org/217682
Committed: https://git.openstack.org/cgit/openstack/networking-cisco/commit/?id=54fca8a047810304c69990dce03052e45f21cc23
Submitter: Jenkins
Branch: stable/kilo

commit 54fca8a047810304c69990dce03052e45f21cc23
Author: Carol Bouchard <email address hidden>
Date: Tue Aug 11 13:14:17 2015 -0400

    Quick retry connect to resolve stale ncclient handle

    When the Nexus switch reboots, OpenStack Nexus Driver will be left
    with a stale ncclient handle resulting in an exception. When an
    exception is encountered, another retry is performed within the driver.
    The first exception information is saved so if the second exception
    fails again, we report on the first exception.
    As part of this fix, I've removed code which supports 2 versions
    of ncclient since the older version no longer meets the version
    configured in our requirements.txt.

    Change-Id: I182440c3a19e7c57e4dfe69e4013ea7bf87aa7ab
    Closes-bug: #1481856
    (cherry picked from commit 46d364dc9f3b24e654939f822ea048e3cbf227c6)

tags: added: in-stable-kilo
Sam Betts (sambetts)
Changed in networking-cisco:
milestone: none → 1.1.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (master)

Fix proposed to branch: master
Review: https://review.openstack.org/246547

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (master)
Download full text (23.9 KiB)

Reviewed: https://review.openstack.org/246547
Committed: https://git.openstack.org/cgit/openstack/networking-cisco/commit/?id=7b1eb2b6d5e55563c084f60e44adc1d32706eb17
Submitter: Jenkins
Branch: master

commit d9b9a6421d7ff92e920ed21b01ebc7bf49e38bd6
Author: Sam Betts <email address hidden>
Date: Tue Sep 29 09:18:10 2015 +0100

    Set default branch for stable/kilo

    Change-Id: I31f51ff60f95639f459839f4c7d929d5ec7c458d

commit f08fb31f20c2d8cc1e6b71784cdfd9604895e16d
Author: Rich Curran <email address hidden>
Date: Thu Sep 3 13:23:52 2015 -0400

    ML2 cisco_nexus MD: VLAN not created on switch

    As described in DE588,
    "With neutron multiworkers configured, there is a potential race condition
    issue where some of the VLANs will not be configured on one or more N9k
    switches.

    /etc/neutron/neutron.conf
    -------------------------
    api_workers=3
    rpc_workers=3"

    Fix is to allow the vlan create command to be sent down to a switch
    under most event conditions. Long term fix will be to introduce a new
    column in the port binding DB table that indicates the true state of the
    entry/row.

    Closes-Bug: #1491940
    Change-Id: If1da1fcf16a450c1a4107da9970b18fc64936896
    (cherry picked from commit 0e48a16e77fc5ec5fd485a85f97f3650126fb6fe)

commit d400749e43e9d5a1fc92683b40159afce81edc95
Author: Carol Bouchard <email address hidden>
Date: Thu Sep 3 15:19:48 2015 -0400

    Create knob to prevent caching ssh connection

    Create a new initialization knob named never_cache_ssh_connection.
    This boolean is False by default allowing multiple ssh connections
    to the Nexus switch to be cached as it behaves today. When there
    are multiple neutron processes/controllers and/or non-neutron ssh(xml)
    connections, this is an issue since processes hold onto a connection
    while the Nexus devices supports a maximum of 8 sessions. As a result,
    further ssh connections will fail. In this case, the boolean should be
    set to True causing each connection to be closed when a neutron event
    is complete.

    Change-Id: I61ec303856b757dd8d9d43110fec8e7844ab7c6d
    Closes-bug: #1491108
    (cherry picked from commit 23551a4198c61e2e25a6382f27d47b0665f054b8)

commit 0050ea7f1fb3c22214d7ca49cfe641da86123e2c
Author: Carol Bouchard <email address hidden>
Date: Wed Sep 2 11:10:42 2015 -0400

    Bubble up exceptions when Nexus replay enabled

    There are several changes made surrounding this bug.

    1) When replay is enabled, we should bubble exceptions
       for received port create/update/delete post_commit
       transactions. This was suppressed earlier by
       1422738.

    2) When an exception is encountered during a
       post_commit transaction, the driver will no longer
       mark the switch state to inactive to force a replay.
       This is no longer needed since 1481856 was introduced.
       So from this point on, only the replay thread will
       determine the state of the connection to the switch.

    3) In addition to accommodating 1 & 2 above, more detail
       data verification was added to the test code.

    Change-Id: I97...

Changed in networking-cisco:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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