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/13171 github. org/Juniper/ contrail- controller/ commit/ 1ca68b2fe083f72 bceaf2f021ef1e8 37b3db62be
Committed: http://
Submitter: Zuul
Branch: master
commit 1ca68b2fe083f72 bceaf2f021ef1e8 37b3db62be
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.
closes-bug: #1473597
closes-bug: #1474273
partial-bug: #1465413
Conflicts:
src/vnsw/ agent/oper/ service_ instance. h
Change-Id: I56880a0d2b82f3 10c351ba292b7a5 4098b6ea880