ML2 port-binding fails if FQDN not used

Bug #1223000 reported by Kyle Mestery
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Critical
Robert Kukura

Bug Description

When using ML2 with devstack, I noticed an issue where my port-binding was failing. See line 1537 in the paste file here [1]. This was because one side was using the FQDN and one was not. We need to fix this so that ML2 works in both cases.

[1] http://paste.openstack.org/show/46347/

Tags: ml2
Robert Kukura (rkukura)
Changed in neutron:
importance: Undecided → Critical
milestone: none → havana-rc1
assignee: nobody → Robert Kukura (rkukura)
Revision history for this message
Francois Eleouet (fanchon) wrote :

As noted during ml2 portbinding review, it comes from different defaults in CONF.host in nova and neutron:

neutron uses socket.getfqdn() [1], and nova uses socket.gethostname() [2] which doesn't always returns FQDN [3].

[1] https://github.com/openstack/neutron/blob/master/neutron/common/utils.py#L161
[2] https://github.com/openstack/nova/blob/master/nova/netconf.py#L53
[3] http://docs.python.org/2/library/socket.html

Changed in neutron:
status: New → Confirmed
tags: added: ml2
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/46567

Changed in neutron:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/46567
Committed: http://github.com/openstack/neutron/commit/140029ebd006c116ee684890dd70e13b7fc478ec
Submitter: Jenkins
Branch: master

commit 140029ebd006c116ee684890dd70e13b7fc478ec
Author: Bob Kukura <email address hidden>
Date: Fri Sep 13 16:12:30 2013 -0400

    Use same hostname function as nova

    Certain plugin implementations of port binding depend on the port's
    binding:host_id set by nova matching the compute node's hostname
    reported by neutron agents in agents_db. Nova uses
    socket.gethostname() to obtain the hostname, so this changes neutron
    to also use socket.gethostname(), instead of socket.getfqdn() to
    obtain the default hostname. If deployments require a specific
    hostname format or value, the hostname can be specified in nova and
    neutron configuration files.

    Closes-Bug: 1223000
    Change-Id: I5de9c6b0df16eca482037a5bdc3a77dc52f4adba

Changed in neutron:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: havana-rc1 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers