Comment 4 for bug 1740455

Revision history for this message
Pierre Hanselmann (pierre-hanselmann) wrote :

Ok i spent my day on this one... and i finally found a solution... at least a workaround. According to the desginate architecture the worker is in charge of sending notify to dns backend (which is the case):

2018-01-11 15:48:20.437 19 INFO designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Attempting UPDATE on zone ici.mydomain.com.
2018-01-11 15:48:20.441 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Attempting UPDATE zone ici.mydomain.com. on <PoolTarget id:'c532cd9d-58e7-46ab-b2d6-75502d60ea7c' type:'bind9' pool_id:'8f2c87fc-6a7d-4f2d-86f7-d4349ba9b5fd'> __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:73
2018-01-11 15:48:20.444 19 DEBUG designate.backend.base [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Update Zone update_zone /usr/lib/python2.7/site-packages/designate/backend/base.py:87
2018-01-11 15:48:20.446 19 DEBUG designate.mdns.rpcapi [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Calling designate.mdns.notify_zone_changed() over RPC wrapped /usr/lib/python2.7/site-packages/designate/loggingutils.py:24
2018-01-11 15:48:20.450 19 DEBUG designate.mdns.rpcapi [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Letting worker send NOTIFYs instead notify_zone_changed /usr/lib/python2.7/site-packages/designate/mdns/rpcapi.py:82
2018-01-11 15:48:20.457 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Sent NOTIFY to 10.56.19.5:53 for zone ici.mydomain.com. __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:124
2018-01-11 15:48:20.458 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Successful UPDATE zone ici.mydomain.com. on <PoolTarget id:'c532cd9d-58e7-46ab-b2d6-75502d60ea7c' type:'bind9' pool_id:'8f2c87fc-6a7d-4f2d-86f7-d4349ba9b5fd'> __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:87
2018-01-11 15:48:20.463 19 DEBUG designate.worker.processing [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Finished Tasks ['ZoneActionOnTarget-Update'] in 0.022432s run /usr/lib/python2.7/site-packages/designate/worker/processing.py:77

Now if I look at the zone directly on the backend i see no update at all (i was not able to configure my log to see that). So once the worker has send this notify he will "poll" the backend and check if the record has been updated (which is not the case).... after a number of unsucessfull attempt he will update the status on this record on "ERROR"... moreover after a certain ammount of time (like 6-7 minutes) mdns will send a notify to the backend:
2018-01-11 15:48:20.437 19 INFO designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Attempting UPDATE on zone ici.mydomain.com.
2018-01-11 15:48:20.441 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Attempting UPDATE zone ici.mydomain.com. on <PoolTarget id:'c532cd9d-58e7-46ab-b2d6-75502d60ea7c' type:'bind9' pool_id:'8f2c87fc-6a7d-4f2d-86f7-d4349ba9b5fd'> __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:73
2018-01-11 15:48:20.444 19 DEBUG designate.backend.base [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Update Zone update_zone /usr/lib/python2.7/site-packages/designate/backend/base.py:87
2018-01-11 15:48:20.446 19 DEBUG designate.mdns.rpcapi [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Calling designate.mdns.notify_zone_changed() over RPC wrapped /usr/lib/python2.7/site-packages/designate/loggingutils.py:24
2018-01-11 15:48:20.450 19 DEBUG designate.mdns.rpcapi [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Letting worker send NOTIFYs instead notify_zone_changed /usr/lib/python2.7/site-packages/designate/mdns/rpcapi.py:82
2018-01-11 15:48:20.457 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Sent NOTIFY to 10.56.19.5:53 for zone ici.mydomain.com. __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:124
2018-01-11 15:48:20.458 19 DEBUG designate.worker.tasks.zone [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Successful UPDATE zone ici.mydomain.com. on <PoolTarget id:'c532cd9d-58e7-46ab-b2d6-75502d60ea7c' type:'bind9' pool_id:'8f2c87fc-6a7d-4f2d-86f7-d4349ba9b5fd'> __call__ /usr/lib/python2.7/site-packages/designate/worker/tasks/zone.py:87
2018-01-11 15:48:20.463 19 DEBUG designate.worker.processing [req-f798d20a-d68e-40d4-8fb3-7592aa2165bf - - - - -] Finished Tasks ['ZoneActionOnTarget-Update'] in 0.022432s run /usr/lib/python2.7/site-packages/designate/worker/processing.py:77

So for the 'workaround'... i have set the worker notify parameter to false which will disable "noop" notify of mdns. Restart the designate_worker container... work! Now i know it's not how it is supposed to work but it seems that bind backend never accept/receive the NOTIFY from the worker.
So in desginate-worker/designate.conf:
[service:worker]
enabled = True
notify = False