Hi Matt,

 

I’m working on the patch fd6cfc upstreaming, which tries to address the stale RPC message issue when DHCP agent restarting up.

 

The patch was in good shape https://review.openstack.org/609463/ whereas the neutron community was questioning about the exact failure modes of this issue. The DHCP agent will have a full sync after the agent restarting up (https://github.com/openstack/neutron/blob/master/neutron/agent/dhcp/agent.py#L195), what kind of corner cases and negative behaviors could happen even w/ this full sync?

 

Based on the commit message, I tried to reproduce this issue w/ the following steps:

1.      schedule network1 to agent1.

2.      turn down agent1 at almost the same time.

3.      network1 is rescheduled to agent2 after finding that agent1 is dead.

4.      turn up agent1, expecting stale RPC messages to be received by agent1 so that both agent1 and agent2 are servicing network1.

 

However, I can only meet the described failure mode by sending another scheduling operation (network1->agent1) after step 2) is done. For the others, they seem to work as expected.

 

Would you please kindly help provide more details about the failure pattern of this issue and/or the reproduction steps? Thanks a lot.

 

BR,

Kailun