)]}'
{
  "commit": "91f7c25df868b94a90fe51033a18d6dfa596feb5",
  "tree": "5847d927cb489a62b583f1bdea82ef3290b164be",
  "parents": [
    "e5642f322263022091e25751a4bc8c792aa47a2a"
  ],
  "author": {
    "name": "diannahu",
    "email": "diannahu@google.com",
    "time": "Mon Apr 11 14:00:05 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Apr 11 14:00:43 2022 -0700"
  },
  "message": "Handle new/pending streams on receipt of a GOAWAY in oghttp2.\n\nThis CL is a follow-up to cl/439588951, which handled the receipt of a GOAWAY\nfor active streams. This CL handles the receipt of a GOAWAY for new/pending\nstreams with stream IDs above the received GOAWAY\u0027s last_stream_id by adding\nthose stream IDs to a new set in OgHttp2Session and delivering OnCloseStream()\nevents for those streams in the next write.\n\nThis choice was motivated by the nghttp2_submit_request() (and thus\nSubmitRequest()) API, which requires returning a stream ID even after receipt\nof a GOAWAY. Note that simply closing the pending streams on GOAWAY would be\ninsufficient, as subsequent calls to SubmitRequest() could result in new or\nnewly pending streams. Therefore, this CL instead decides to unify handling for\nnew/pending streams by catching them in the common StartNewRequest() method.\nBecause the OnCloseStream() is delivered on the next write attempt, this CL\nalso updates want_write() to account for these GOAWAY-rejected streams.\n\nThis change increases oghttp2 parity with nghttp2.\n\nPiperOrigin-RevId: 440989445\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4df1a89b95c0f3c147f0314e2632175a4b3a539f",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_adapter_test.cc",
      "new_id": "970d5296c1316e72f757ca6857957e6d6d9e1fe8",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "5c12d42c6d79c40f306aebf99f4bbe837e18013a",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_adapter_test.cc",
      "new_id": "b279a7697e57f8d80df154f3e2bd67024f1e3edc",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "655a9e24eb174471917995a744485120bdbfe54a",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_session.cc",
      "new_id": "eddfc99917ee6b14e87a10ac363afad1c47452ed",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_session.cc"
    },
    {
      "type": "modify",
      "old_id": "43542c5699fd8fd15ad4e66e98b3f86b18f6bb54",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_session.h",
      "new_id": "a4510796f99e174d276b8ef04f9e81ba037b5b3c",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_session.h"
    }
  ]
}
