)]}'
{
  "commit": "832bc77f0f0530059dd66b59cfd8a000b59b6251",
  "tree": "c063cc6398e410496844622ed9e2688f1e5c8116",
  "parents": [
    "abe02eb86b64920be8aec862e380853be1fd3372"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Thu Apr 07 12:33:01 2022 +0200"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@monogon.tech",
    "time": "Tue Apr 19 08:06:03 2022 +0000"
  },
  "message": "m/p/event/etcd: handle spurious watch updates\n\nWith the recent etcd updates, we started seeing some failures in tests\nfor the etcd-backed Event Value library.\n\nThis seems to be due to etcd now sometimes returning \u0027spurious\u0027 watch\nupdates, in which a keyvalue is returned twice, with two separate\nrevision numbers, even though the underlying value has not been\nupdated.\n\nWe elect to deduplicate these within the event value library itself, if\nonly to make it less work for downstream users to do the same. This is\ndone be keeping a cross-watcher.Get map of key-\u003evalues, and filtering\nout updates which effectively do not update the data underneath.\n\nWe had one test relying on 1:1 correspondance between etcd puts and\nEvent Value backlogged Gets. However, the rest of our codebase does not\nmake this assumption, and it seems fair that this assumption doesn\u0027t\nmake sense alongside the intended use of the Event Value system in which\nwe deliberately and arbitrarily drop intermediate updates within a\nsingle Get call.\n\nChange-Id: I731a15b2d15ab6807bb95cb6c777c176dde22f0b\nReviewed-on: https://review.monogon.dev/c/monogon/+/654\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb93325e3908ba9ae1b879eedec97763e7f5e037",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/event/etcd/etcd.go",
      "new_id": "f5ccd2728a6c157d178eee5fe2d0fe0da2518299",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/event/etcd/etcd.go"
    },
    {
      "type": "modify",
      "old_id": "faa9629bdb432aedb6768cfaa7077d2ae945e271",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/event/etcd/etcd_test.go",
      "new_id": "d91a6b934f9321161b361f17c89e3be6e39df3ef",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/event/etcd/etcd_test.go"
    }
  ]
}
