)]}'
{
  "commit": "c050a833ccf7e92f2d4aa805e692c49bb9547f13",
  "tree": "ecb7aa4bf5a85d021f5a4c434d40c16870fdb356",
  "parents": [
    "536c32a9cfe0a90c021623964b90661e0f77336b"
  ],
  "author": {
    "name": "Thomas Gales",
    "email": "tgales@google.com",
    "time": "Thu Sep 17 14:15:35 2026 -0700"
  },
  "committer": {
    "name": "fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Sep 17 14:15:35 2026 -0700"
  },
  "message": "Fix use-after-free\n\nThis CL updates the CobaltService destructor to stop and join the\nbackground worker threads in ShippingManager and LocalAggregation before\nmember destruction begins.\n\nThis ensures no background threads attempt to access member variables\n(like internal_metrics_) after they have been destructed.\n\nIn an ideal world, the declaration order in CobaltService would just be\nmodified so that ShippingManager is destroyed before LocalAggregation.\nHowever, the code is such a pile of spaghetti that doing so just causes\nundefined behavior during construction instead.\n\nFixed: 529458930\nBug: 517993359\nTest: fx test cobalt_core //src/cobalt\nTAG: agy\nCONV: cfd81020-ca22-471e-a053-a184c015d139\nChange-Id: Ib091ca8b7e027ff0dc9320857ed456d2ec349662\nReviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/1832809\nCommit-Queue: Thomas Gales \u003ctgales@google.com\u003e\nReviewed-by: Alex Pankhurst \u003cpankhurst@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a7465e4c9ba0dfa4c13e10fd80e88362817a348a",
      "old_mode": 33188,
      "old_path": "src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.cc",
      "new_id": "09832bb6df3ff54884968fb50c1514c919c8fef0",
      "new_mode": 33188,
      "new_path": "src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.cc"
    },
    {
      "type": "modify",
      "old_id": "77bb22ce9183378bf6dc8de91add119b26aaa3f1",
      "old_mode": 33188,
      "old_path": "src/public/cobalt_service.cc",
      "new_id": "52df018c15006bfda5c4267e3cb322ed3dcb08e6",
      "new_mode": 33188,
      "new_path": "src/public/cobalt_service.cc"
    },
    {
      "type": "modify",
      "old_id": "0029f99d7a02940c1b173019dadd8126bdf55e1a",
      "old_mode": 33188,
      "old_path": "src/public/cobalt_service.h",
      "new_id": "37b29227f0e27936ffbaaea6b0d308fb61be7292",
      "new_mode": 33188,
      "new_path": "src/public/cobalt_service.h"
    },
    {
      "type": "modify",
      "old_id": "e2aa41802c1b52ed5193967fff0f792125e529c0",
      "old_mode": 33188,
      "old_path": "src/uploader/shipping_manager.h",
      "new_id": "34a556b8453f855f8afd76348a0caf09a0441d95",
      "new_mode": 33188,
      "new_path": "src/uploader/shipping_manager.h"
    }
  ]
}
