)]}'
{
  "commit": "08c1c72246da4f8f18dfb7e94a1da813b094c7a4",
  "tree": "e8dd5a474edb79f2658b951e64b993b38c46b210",
  "parents": [
    "65602097b716674316a318d5594a8b2b0e52d239"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Thu Dec 19 12:03:17 2024 +0100"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Mon Dec 23 10:13:43 2024 +0000"
  },
  "message": "osbase/supervisor: only enter DONE state after runnable returns\n\nPreviously, a node was marked DONE as soon as it signaled DONE. If a GC\nrun happens between the time when the runnable signals DONE, and when\nthe runnable exit is processed, this causes problems. The test which I\nadded panics without the other changes:\n\npanic: could not find [inner] (root.inner) in root (NODE_STATE_NEW)\n\nIf the delay is long enough that the inner node has already restarted,\nthen this could even end up with multiple instances of the same runnable\nrunning simultaneously.\n\nI fixed this problem by only entering the DONE state after the runnable\nhas returned.\n\nChange-Id: If73b73f104c4cc204bce4374f4ba5f7e163e4a0b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3715\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "272b6505293a3b9c2b6924bf17d57269852fe251",
      "old_mode": 33188,
      "old_path": "osbase/supervisor/supervisor_node.go",
      "new_id": "4f4d1807b5c2c9e7812495913d22f626bbce224b",
      "new_mode": 33188,
      "new_path": "osbase/supervisor/supervisor_node.go"
    },
    {
      "type": "modify",
      "old_id": "595e2be0df8b6382b783a669195cd71c313e2767",
      "old_mode": 33188,
      "old_path": "osbase/supervisor/supervisor_processor.go",
      "new_id": "667b2ab2161b6448bd036db1d2eaa6836bc7e24d",
      "new_mode": 33188,
      "new_path": "osbase/supervisor/supervisor_processor.go"
    },
    {
      "type": "modify",
      "old_id": "3b8129193f7f2749998f2b4e59ed514abb6cf795",
      "old_mode": 33188,
      "old_path": "osbase/supervisor/supervisor_test.go",
      "new_id": "fabfb8bca6605a0042a495a93dab3c36b49fe8d6",
      "new_mode": 33188,
      "new_path": "osbase/supervisor/supervisor_test.go"
    }
  ]
}
