)]}'
{
  "commit": "ba7067c9fa5ffe3855e26d7bc206924ea882dea7",
  "tree": "732ced7cb7823d842f49bdc045da66352bb8629f",
  "parents": [
    "245a6e692a8663d6d94dffeb693305d45803919e"
  ],
  "author": {
    "name": "Jakob Buchgraber",
    "email": "buchgr@google.com",
    "time": "Thu Nov 16 03:20:39 2023 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Nov 16 03:30:54 2023 -0800"
  },
  "message": "Fix a bug where we did not return a mutable message for _mut() accessors\n\nThis bug has been found by the TSAN sanitizer as part of cl/582814210. Before this change we were incorrectly returning an immutable Message instance for mutable accessors. This bug has been detected by TSAN because for embedded message fields the C++ runtime returns a static message instance if a field has not been set. In cl/582814210 this bug led to two separate unit tests read and write from/to the same object without any synchronization. Thus TSAN found a data race.\n\nTests for this change will be added as part of cl/582814210. At this state of the source we don\u0027t have any mutation functions available to trigger the TSAN error.\n\nPiperOrigin-RevId: 582978261\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "972f3cd281b0358574a6cb57e5ae1105121f626e",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/rust/accessors/singular_message.cc",
      "new_id": "cfa0d1fd0f0ad6597ec0d94297c62f3b1ed9e8a2",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/rust/accessors/singular_message.cc"
    }
  ]
}
