)]}'
{
  "commit": "bbce25d4e4d7be512d7ffe70916043c6491df955",
  "tree": "da83e4e100607a750706e7b5f6dc4a6a15344a34",
  "parents": [
    "2061ddf0e52339e2d4ed6d9c52ce6f3ad1920ceb"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Mon Dec 20 14:05:00 2021 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Dec 20 14:06:03 2021 -0800"
  },
  "message": "Avoid sending frames after sending an immediate GOAWAY in OgHttp2Session.\n\nThis CL makes the following related changes to OgHttp2Session:\n  - Add a queued_immediate_goaway_ field, set if the enqueued GOAWAY is the\n    result of a connection-level error (i.e., if latched_error_ is true).\n  - Make EnqueueFrame() a no-op if queued_immediate_goaway_ is true.\n  - Avoid writing for streams if queued_immediate_goaway_ is true.\n\nThese changes allow OgHttp2Session to avoid sending either control frames or\nDATA frames once a GOAWAY is sent.\n\nThis CL also fixes a potential memory leak in NgHttp2Adapter with submitted\nMETADATA that is now also not sent after an immediate GOAWAY. In particular,\nMetadataSource now has a new interface method OnFailure() that\nSelfDeletingMetadataSource() can override to self-delete.\nMetadataSource::OnFailure() is now called in\nnghttp2_on_frame_not_send_callback() (newly set to call new OnFrameNotSent()).\n\nThis CL marks the triumphant passing of codec_impl_test\nLargeServerBodyFlushTimeoutAfterGoaway\n(http://sponge2/cc0358b2-2881-4502-aa95-6cf2cd9b6de5).\n\nPiperOrigin-RevId: 417475633\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "63448b3e56ef746adafae0eb0596746406bd50cf",
      "old_mode": 33188,
      "old_path": "http2/adapter/data_source.h",
      "new_id": "dd4601f48d9b1c5ed8962c8affd8ffabe8dc8256",
      "new_mode": 33188,
      "new_path": "http2/adapter/data_source.h"
    },
    {
      "type": "modify",
      "old_id": "821eb8cc748517cd77e24fca8d1be7e60bcf584d",
      "old_mode": 33188,
      "old_path": "http2/adapter/nghttp2_adapter.cc",
      "new_id": "a6ba0b279576afd0bb4944062f2ba6029dbcd272",
      "new_mode": 33188,
      "new_path": "http2/adapter/nghttp2_adapter.cc"
    },
    {
      "type": "modify",
      "old_id": "b5bb2a3533bf6f1007a0d624ec84cbc491ecb315",
      "old_mode": 33188,
      "old_path": "http2/adapter/nghttp2_adapter_test.cc",
      "new_id": "4e0400a83379c7a6b35ede9b63d77bc77a95a955",
      "new_mode": 33188,
      "new_path": "http2/adapter/nghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "dc6df1d908195be6494ebb5fcc9fdb6c21e82ce3",
      "old_mode": 33188,
      "old_path": "http2/adapter/nghttp2_callbacks.cc",
      "new_id": "2d05beef73196ebaf831e37e38a05402c99c79eb",
      "new_mode": 33188,
      "new_path": "http2/adapter/nghttp2_callbacks.cc"
    },
    {
      "type": "modify",
      "old_id": "293c6d6e2e8f849fb054c3067de56662e3ca6402",
      "old_mode": 33188,
      "old_path": "http2/adapter/nghttp2_callbacks.h",
      "new_id": "82b7cf1a806649eafd794bd2a3fcfcab0ea3f6b6",
      "new_mode": 33188,
      "new_path": "http2/adapter/nghttp2_callbacks.h"
    },
    {
      "type": "modify",
      "old_id": "ae277b675883044f21f66884a8843e0be4e5f5ed",
      "old_mode": 33188,
      "old_path": "http2/adapter/oghttp2_adapter_test.cc",
      "new_id": "15d1e3a7bd9c14c33f1f340db84345df17927dd5",
      "new_mode": 33188,
      "new_path": "http2/adapter/oghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "028eb731bb80c26648d13592ed4e56e4db5d41b1",
      "old_mode": 33188,
      "old_path": "http2/adapter/oghttp2_session.cc",
      "new_id": "af843e8312372cb605f8f18f7755f253996ac784",
      "new_mode": 33188,
      "new_path": "http2/adapter/oghttp2_session.cc"
    },
    {
      "type": "modify",
      "old_id": "7bd23852d9dda399928d32663a17f7a24d3e1cfa",
      "old_mode": 33188,
      "old_path": "http2/adapter/oghttp2_session.h",
      "new_id": "d9f00dfa881583b933bb9bc1a89101bc59d4e853",
      "new_mode": 33188,
      "new_path": "http2/adapter/oghttp2_session.h"
    },
    {
      "type": "modify",
      "old_id": "886d0bf9167258c13851865455fe71c3e2fbd940",
      "old_mode": 33188,
      "old_path": "http2/adapter/test_utils.h",
      "new_id": "be53ba8cab568f52501c5efaa07c048a2fa328cb",
      "new_mode": 33188,
      "new_path": "http2/adapter/test_utils.h"
    }
  ]
}
