When the neutron router is added and deleted continuously in a loop, the
service instance object in Agent is not properly handled. When service
instance is delete marked and re-add appears again, DB table invokes
OnChange on the DBEntry rather Add. Service instance code is not
handling this case and IFMapNode is set in DBEntry only as part
of ADD. This is leading to stale IFMapNode entry in DBEntry and leading
to crash when IFMap node graph is invoked as part of OnChange.
As a fix, even in OnChange, IFMapNode is set in DBEntry. As
service_instance is taking a intrusive pointer to IFMapNode, redundatnt
node_ member is removed from the object.
Also service_instance_test has been moved out of falky test.
Reviewed: https:/ /review. opencontrail. org/12710 github. org/Juniper/ contrail- controller/ commit/ 782d8bdf8abab02 7129d6c10248a47 5a4bb11ce0
Committed: http://
Submitter: Zuul
Branch: R2.20
commit 782d8bdf8abab02 7129d6c10248a47 5a4bb11ce0
Author: Divakar <email address hidden>
Date: Wed Jul 29 21:42:06 2015 +0530
Handling service-instance reuse
When the neutron router is added and deleted continuously in a loop, the
service instance object in Agent is not properly handled. When service
instance is delete marked and re-add appears again, DB table invokes
OnChange on the DBEntry rather Add. Service instance code is not
handling this case and IFMapNode is set in DBEntry only as part
of ADD. This is leading to stale IFMapNode entry in DBEntry and leading
to crash when IFMap node graph is invoked as part of OnChange.
As a fix, even in OnChange, IFMapNode is set in DBEntry. As
service_instance is taking a intrusive pointer to IFMapNode, redundatnt
node_ member is removed from the object.
Also service_ instance_ test has been moved out of falky test.
Change-Id: Ifc84091e23c5bc 1a367d852574db2 86751b041f0
closes-bug: #1473597
closes-bug: #1474273
partial-bug: #1465413