)]}'
{
  "commit": "01d7ff0a2166a422c56bd26f04fc22832a9e690b",
  "tree": "5fed07bab4751e28e50dd7ff7145b06a565c4f5a",
  "parents": [
    "78d92e1721538ec41feb2b1c34712675b830087b"
  ],
  "author": {
    "name": "Josh Bailey",
    "email": "joshb@google.com",
    "time": "Wed Jul 20 20:52:06 2011 -0700"
  },
  "committer": {
    "name": "Josh Bailey",
    "email": "joshb@google.com",
    "time": "Wed Jul 20 20:52:06 2011 -0700"
  },
  "message": "bgpd: We try to skip out of updating the multipath aggregate if there are no\nchanges in the multipath set or attributes, but failed to check for\njust a bestpath change. The result is there is no attribute on the new\nbestpath and we hit the assert. Added the bestpath check and\nrearranged the code to only check attributes when there is no bestpath\nor multipath change, so we only scan the for attribute changes when\nnecessary.\n\n* bgpd/bgp_mpath.c\n  * bgp_info_mpath_aggregate_update(): Added check for bestpath\n    change before skipping the aggregate generation. Skip the attribute\n    check if either the multipath set or bestpath has changed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1709c24484921c5f8bbd3ca79340066c2dd68251",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_mpath.c",
      "new_id": "d07830d14db7394c63843915e7be47d3ca91ce9d",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_mpath.c"
    }
  ]
}
