DHCP agent dnsmasq driver should not check dnsmasq version at runtime

Bug #1412818 reported by Ihar Hrachyshka
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Ihar Hrachyshka

Bug Description

Dumb version check is too unsafe, for there are environments with extensive backports to dnsmasq, where all the needed features are present in dnsmasq, but version string is still 'old'. We should not apply such unsafe checks (and exit the agent!) in the service.

Changed in neutron:
importance: Undecided → Wishlist
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/148577

Changed in neutron:
assignee: nobody → Ihar Hrachyshka (ihar-hrachyshka)
status: New → In Progress
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/148577
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=332204fec7e96339947aa662b25adc9925609c4f
Submitter: Jenkins
Branch: master

commit 332204fec7e96339947aa662b25adc9925609c4f
Author: Ihar Hrachyshka <email address hidden>
Date: Tue Jan 20 15:18:36 2015 +0100

    dhcp: move dnsmasq version check to sanity_check

    We should avoid checking version numbers in runtime. In that way, we may
    break some existing setups by minimal version bumps that are often not
    critical for operation. One example is a recent version bump to support
    IPv6 DHCP stateful address assignment mode. Even though old dnsmasq
    version made this particular mode to fail to assign addresses to
    instances, other IPv6 modes, and, even more importantly, all IPv4
    networks continued to operate with no issues.

    So let's move the fatal check from DHCP agent into sanity_check tool to
    avoid potential breakages on neutron update.

    In ideal world, we would make the check smarter. Since current version
    cap is due to missing hwaddr matching for IPv6 clients for old dnsmasq
    versions, we could preconfigure and start up dnsmasq server in a
    namespace, and request a IPv6 lease from it. That would require a DHCP
    IPv6 client installed though, and I'm not sure we can always expect it
    to be present, so leaving it as-is for now.

    Since DHCP drivers are pluggable, we cannot drop check_version method
    from DhcpBase to support other drivers that may live in the wild.

    Note: we could mark the method as deprecated if we really want to get
    rid of it.

    Closes-Bug: #1412818
    Change-Id: I7a75cccf3880d3b18005ae0def5a17dfd8a00182

Changed in neutron:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in neutron:
milestone: none → kilo-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: kilo-2 → 2015.1.0
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.