)]}'
{
  "commit": "15652e4b749bd4745990d801484133856daf9426",
  "tree": "6d37cf1cc0a22f841ef3799ed8d1b44588832745",
  "parents": [
    "1b697c7e7974c0d1237c378b47cc8ea695e35e0b"
  ],
  "author": {
    "name": "Patryk Lesiewicz",
    "email": "patryk@google.com",
    "time": "Fri Dec 01 13:37:35 2017 -0800"
  },
  "committer": {
    "name": "Piotr Sikora",
    "email": "piotrsikora@google.com",
    "time": "Fri Dec 01 23:12:05 2017 +0000"
  },
  "message": "Upstream: flush low-level buffers on write retry.\n\nIf the data to write is bigger than what the socket can send and the\nreminder is smaller than NGX_SSL_BUFSIZE, then SSL_write() fails with\nSSL_ERROR_WANT_WRITE. The reminder of payload however is successfully\ncopied to the low-level buffer and all the output chain buffers are\nflushed. This means that retry logic doesn\u0027t work because\nngx_http_upstream_process_non_buffered_request() checks only if there\u0027s\nanything in the output chain buffers and ignores the fact that something\nmay be buffered in low-level parts of the stack.\n\nChange-Id: I7ae8279dd3f95e69853e83ab14a707e30efe66a8\nSigned-off-by: Patryk Lesiewicz \u003cpatryk@google.com\u003e\nReviewed-on: https://nginx-review.googlesource.com/3260\nReviewed-by: Piotr Sikora \u003cpiotrsikora@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f4bd6dce7cd27c0262a6bf1e3d5922686d7bd7f5",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.c",
      "new_id": "876357d5370a32c2fa69cd31d7a0397d56914559",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.c"
    }
  ]
}
