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

Remote bug watches

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