{"push_id":1085576240,"size":2,"distinct_size":2,"ref":"refs/heads/R2.22.x","head":"528fdd3547af4a58a3ef544d7cc5a1b893fd9027","before":"a5d3a6f5f6585b192767f6840d02cc74dfc314f5","commits":[{"sha":"317e36ce1f265397e3a14e8c78fc10f3859919b0","author":{"email":"81b84256ccd9b657ea0df02ba0dab95cfb340b64@juniper.net","name":"Tapan Karwa"},"message":"Keep track of interest and advertised as separate resources.\n\nBoth interest and advertised need to be considered as separate resources since\neach has a life of its own, they dont move in lockstep and should not be\ncoupled in the config tracking. Adding separete config tracking abilities for\nadvertised too.\n\nThis is required for race conditions like the following:\n1. Node N1 has both interest and advertised set with client C1's index.\n2. The graph-walker processes a link-delete which makes node N1 unreachable\nfor client C1. It removes the interest for C1 from N1 and triggers a\ntable-change to let the exporter process it. Until the exporter processes it,\nupdate for N1 (to be sent to C1) will not be added to the updateQ.\n3. C1 gets a NotReady i.e. its going away. The ifmap-server processes the client\ndelete and as part of that cleanup goes through the updateQ for any\npending updates to C1. It does not find anything and cleans up the client C1\nfrom all its data-structures. C1 is gone.\n4. Exporter finally processes the trigger from the graph-walker from #1 and\nadds a delete-update for C1 to the UpdateQ since N1's advertised has C1's index\nset. But, C1 is gone and does not need to see this delete-update and nobody will\nclean it up. This will also keep the IFMapState for N1 alive with advertised\nstill set to C1. So, if C1 (or another client C2) comes back, we will not send\nN1 to him since the advertised is set.\n\nChange-Id: I32efa5bc5ded55c8e46d1ebe951ee59542ad1587\nCloses-Bug: #1551398\n(cherry picked from commit 9a6ff815db8d7d778ac0588aafc6b99133470093)","distinct":true,"url":"https://api.github.com/repos/Juniper/contrail-controller/commits/317e36ce1f265397e3a14e8c78fc10f3859919b0"},{"sha":"528fdd3547af4a58a3ef544d7cc5a1b893fd9027","author":{"email":"824662dd828adcec0bfbb1c6955f2603475eeec7@lists.opencontrail.org","name":"Zuul"},"message":"Merge \"Keep track of interest and advertised as separate resources.\" into R2.22.x","distinct":true,"url":"https://api.github.com/repos/Juniper/contrail-controller/commits/528fdd3547af4a58a3ef544d7cc5a1b893fd9027"}]}