Overall, this looks to me like a race between ml2/ovn driver completing l2 block provisioning after ovn-controller successfully claims the router port; and some other port update (?) that re-introduces the provisioning block again.
Alternatively, the provisioning block was not inserted into db, yet, when ovn-controller already reported back about claim success. This theory can be supported by the fact that the only "Transition to ACTIVE for port object d368456e-fb18-44b6-8b1b-bfe5b17efcab will not be triggered until provisioned by entity L2." message in the neutron-server log is AFTER ovn-controller reports back. I'd expect the block to be injected into neutron database before ovn-controller is assigned the claiming job... Or that at least we won't progress with ovn-controller update handling before provisioning block is inserted.
Overall, this looks to me like a race between ml2/ovn driver completing l2 block provisioning after ovn-controller successfully claims the router port; and some other port update (?) that re-introduces the provisioning block again.
Alternatively, the provisioning block was not inserted into db, yet, when ovn-controller already reported back about claim success. This theory can be supported by the fact that the only "Transition to ACTIVE for port object d368456e- fb18-44b6- 8b1b-bfe5b17efc ab will not be triggered until provisioned by entity L2." message in the neutron-server log is AFTER ovn-controller reports back. I'd expect the block to be injected into neutron database before ovn-controller is assigned the claiming job... Or that at least we won't progress with ovn-controller update handling before provisioning block is inserted.