)]}'
{
  "commit": "7ef4221c3f85121edb68a6a54ebd6bb167408e47",
  "tree": "fc347b5fa1935a8ef801c3af4b75167af0716934",
  "parents": [
    "234e5c8d5a35339fb319affb952581bf5abb48a7"
  ],
  "author": {
    "name": "Donald Sharp",
    "email": "sharpd@cumulusnetworks.com",
    "time": "Mon Mar 30 06:32:52 2015 -0700"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Thu Sep 24 15:26:42 2015 +0100"
  },
  "message": "bgpd: Fix race in clearing completion\n\nWhen a peer that is Established goes down, it is moved into the Clearing\nstate to facilitate clearing of the routes received from the peer - remove\nfrom the RIB, reselect best path, update/delete from Zebra and to other\npeers etc. At the end of this, a Clearing_Completed event is generated to\nthe FSM which will allow the peer to move out of Clearing to Idle.\n\nThe issue in the code is that there is a possibility of multiple Clearing\nCompleted events being generated for a peer, one per AFI/SAFI. Upon the\nfirst such event, the peer would move to Idle. If other events happened\n(e.g., new connection got established) before the last Clearing_Completed\nevent is received, bad things can happen.\n\nFix to ensure only one Clearing_Completed event is generated.\n\nSigned-off-by: Vivek Venkataraman \u003cvivek@cumulusnetworks.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a2e41e89239fa48986433cf602850da2a670ede",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_fsm.c",
      "new_id": "80ced4795a2194212ebd3c63b3ab37f34b9311cf",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_fsm.c"
    },
    {
      "type": "modify",
      "old_id": "02c926fe85686b4159a868a167b3a62c64d6cd56",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_route.c",
      "new_id": "f40127195f076194ab01a3db2f610389f733897f",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_route.c"
    }
  ]
}
