)]}'
{
  "commit": "052d402985816c1fc0f07424e53eaace3fa5e408",
  "tree": "e7afcfbd6ad0917d9ce6e3968272262fd4d98455",
  "parents": [
    "59275e266a222564fc1a39f17b913a74838478f4"
  ],
  "author": {
    "name": "Keith Randall",
    "email": "khr@golang.org",
    "time": "Fri Dec 08 13:50:22 2023 -0800"
  },
  "committer": {
    "name": "Keith Randall",
    "email": "khr@golang.org",
    "time": "Mon Dec 11 17:15:22 2023 +0000"
  },
  "message": "runtime: clear mspan.largeType more carefully in the case of arenas\n\nThe pointer stored in mspan.largeType is an invalid pointer when\nthe span is an arena. We need to make sure that pointer isn\u0027t seen\nby the garbage collector, as it might barf on it. Make sure we\nzero the pointer using a uintptr write so the old value isn\u0027t picked\nup by the write barrier.\n\nThe mspan.largeType field itself is in a NotInHeap struct, so a heap\nscan won\u0027t find it. The only way we find it is when writing it, or\nwhen reading it and putting it in a GC-reachable location. I think we\nmight need to audit the runtime to make sure these pointers aren\u0027t\nbeing passed in places where the GC might (non-conservatively) scan a\nstack frame it lives in. (It might be ok, many such places are either\nsystemstack or nosplit.)\n\nChange-Id: Ie059d054e0da4d48a4c4b3be88b8e1e46ffa7d10\nReviewed-on: https://go-review.googlesource.com/c/go/+/548535\nReviewed-by: Michael Knyszek \u003cmknyszek@google.com\u003e\nReviewed-by: Keith Randall \u003ckhr@google.com\u003e\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d84c0d07ceba82f5c753c0ed784555eb5ec1f08",
      "old_mode": 33188,
      "old_path": "src/runtime/mgcsweep.go",
      "new_id": "0fbb23d57399b5c2cb9038b43df130ee3a38b392",
      "new_mode": 33188,
      "new_path": "src/runtime/mgcsweep.go"
    }
  ]
}
