"Another DHCP agent problem that my team noticed is that it
call_driver('reload_allocations') takes a bit of time (to regenerate the
Dnsmasq config files, and to spawn a shell that sends a HUP signal) -
enough so that if there is a fast steady rate of port-create and
port-delete notifications coming from the Neutron server, these can
build up in DHCPAgent's RPC queue, and then they still only get
dispatched one at a time. So the queue and the time delay become longer
and longer.
I have a fix pending for this, which uses an extra thread to read those
notifications off the RPC queue onto an internal queue, and then batches
the call_driver('reload_allocations') processing when there is a
contiguous sequence of such notifications - i.e. only does the config
regeneration and HUP once, instead of lots of times."
I think that could indeed be the same problem as this bug.
It turns out I already mentioned the scenario that https:/ /review. openstack. org/#/c/ 220758/ addresses on the ML, here: http:// lists.openstack .org/pipermail/ openstack- dev/2015- June/066188. html:
"Another DHCP agent problem that my team noticed is that it 'reload_ allocations' ) takes a bit of time (to regenerate the
call_driver(
Dnsmasq config files, and to spawn a shell that sends a HUP signal) -
enough so that if there is a fast steady rate of port-create and
port-delete notifications coming from the Neutron server, these can
build up in DHCPAgent's RPC queue, and then they still only get
dispatched one at a time. So the queue and the time delay become longer
and longer.
I have a fix pending for this, which uses an extra thread to read those 'reload_ allocations' ) processing when there is a
notifications off the RPC queue onto an internal queue, and then batches
the call_driver(
contiguous sequence of such notifications - i.e. only does the config
regeneration and HUP once, instead of lots of times."
I think that could indeed be the same problem as this bug.