mDNS outbound queries / NOTIFY's appear to be blocking

Bug #1437710 reported by Kiall Mac Innes
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Designate
Fix Released
Critical
Kiall Mac Innes

Bug Description

mDNS outbound queries / NOTIFY's appear to be blocking.

When mDNS is asked to send 5 NOTIFY's, and the first NOTIFY is sent to a down/offline server, the process will hang for the duration of the timeout (30 seconds by default).

My initial guess is that, this caused by eventlet importing dnspython before we do, resulting in us receiving unpatched versions of the dns.query() module.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to designate (master)

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

Changed in designate:
status: New → In Progress
Revision history for this message
Kiall Mac Innes (kiall) wrote :

Yep, that was is - forcing a patched import resolved the many pauses I've observed in the mdns logs.

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

Reviewed: https://review.openstack.org/168627
Committed: https://git.openstack.org/cgit/openstack/designate/commit/?id=0b9060369a5a53078fa26b97b9f4f95f8973bea7
Submitter: Jenkins
Branch: master

commit 0b9060369a5a53078fa26b97b9f4f95f8973bea7
Author: Kiall Mac Innes <email address hidden>
Date: Sat Mar 28 20:25:24 2015 +0000

    Ensure mDNS originated queries are non-blocking

    Since eventlet uses DNSPython to patch the stdlib's dns methods, eventlet
    imports dnspython very early, before the stdlib has been fully patched.
    The result is that our "import dns.query" receives a cached version of the
    module from before eventlet's patching, which in turn holds references to
    the unpatched stdlib.

    Change-Id: Ic8d5cdd6f85e5a670d1e3e8f2f318f12d82c4921
    Closes-Bug: 1437710

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