update_port failure across server restart

Bug #1554151 reported by James Anziano
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
James Anziano

Bug Description

Steps to reproduce:
Make sure your environment is configured to use the dns-integration extension.
Have an existing port created. Restart the server. It might be helpful first to insert a line into the beginning of the process_update_port method in neutron/neutron/plugins/ml2/extensions/dns_integration.py that prints out the DNS_DRIVER variable. It will be None the first time this method is called, afterwards it will correctly be an instance of your DNS driver object.
After restarting the server, run neutron port-update my-port with any arguments.
While the behavior is the same regardless of the argument, the bug only becomes a problem if the arguments are relevant to the DNS extension, such as dns_name or updating the IP address.

The command will claim to have completed successfully, but the DNS driver is not loaded until the end of the process, after it has been used. Certain functions will check to make sure the DNS driver has been loaded and will exit silently and prematurely because it hasn't been loaded yet. Any subsequent port-update commands will be fine because the driver is now loaded until the server gets restarted again.

DevStack all-in-one built from master
Perceived severity: medium

Tags: l3-ipam-dhcp
James Anziano (janzian)
description: updated
Changed in neutron:
assignee: nobody → James Anziano (janzian)
Revision history for this message
Miguel Lavalle (minsel) wrote :

Confirmed. I am able to reproduce as indicated

Changed in neutron:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

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

Changed in neutron:
status: Confirmed → In Progress
Changed in neutron:
milestone: none → mitaka-rc1
summary: - After the Neutron server has been restarted, the first create_port or
- update_port will fail to propagate DNS attributes to external DNS
- service because the driver not loaded properly. All subsequent
- create_port or update_port operations will correctly propagate DNS
- attributes to the external DNS service.
+ update_port failure across server restart
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/289526
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=4f04102e5769930b03b9f28616c7734b74bbe868
Submitter: Jenkins
Branch: master

commit 4f04102e5769930b03b9f28616c7734b74bbe868
Author: James Anziano <email address hidden>
Date: Mon Mar 7 19:08:39 2016 +0000

    Ensures DNS_DRIVER is loaded before it is checked

    Previously it was possible for DNS_DRIVER to be checked here before anything
    had attempted to load it, causing the check to erroneuously fail. This patch
    makes sure that the check will not fail simply because nothing had loaded it
    prior by attempting to load it immediately before the check.

    Change-Id: I34537beaf675db2634493dfef27b69051a8d0781
    Closes-Bug: 1554151

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/neutron 8.0.0.0rc1

This issue was fixed in the openstack/neutron 8.0.0.0rc1 release candidate.

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.