)]}'
{
  "commit": "031243f5a276726080a92410f7d3503e5870ed49",
  "tree": "ab582e63dccf71c27e916d23ea24d5f250774d41",
  "parents": [
    "cbeb8a01de2ac264f41b403b6fdc33dca7b5e568"
  ],
  "author": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Tue Aug 24 12:14:27 2021 +0200"
  },
  "committer": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Thu Aug 26 16:02:23 2021 +0000"
  },
  "message": "m/p/devicemapper: fix GC closing control fd\n\nThe devicemapper package stored a reference to its control file\ndescriptor as a uintptr after opening it thorugh os.Open(). This is a\nproblem as os.newFile (internally called by os.Open) sets a finalizer\non the os.File which closes the fd as soon as the object is GCed.\nBecause no such reference was kept by the devicemapper package, the GC\ncould end up closing the fd.\n\nTo fix this, the package now keeps the original os.File around and\njust grabs an Fd as necessary.  While we\u0027re at it, let\u0027s make the\ncontrol file descriptor implementation threadsafe.\n\nChange-Id: I6f7e0a398f28c1141627904ccbd2d99dd248bc78\nReviewed-on: https://review.monogon.dev/c/monogon/+/310\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9b560e6f58f08bb65c4795bd81321a7d7fd453de",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/devicemapper/devicemapper.go",
      "new_id": "1999a00deb943e2c708ea738f5c35704f3aea8d0",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/devicemapper/devicemapper.go"
    }
  ]
}
