)]}'
{
  "commit": "5274f023a243e4163bcdb1b93e00445e769a8ff9",
  "tree": "eba84a5bcf52540362682265f9198ebc6a4962b3",
  "parents": [
    "78aacc838bac5c92fe92f8533526515766cfce15"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Thu Jul 25 15:00:41 2013 +0400"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Thu Jul 25 15:00:41 2013 +0400"
  },
  "message": "Upstream: no last buffer on errors.\n\nPreviously, after sending a header we always sent a last buffer and\nfinalized a request with code 0, even in case of errors.  In some cases\nthis resulted in a loss of ability to detect the response wasn\u0027t complete\n(e.g. if Content-Length was removed from a response by gzip filter).\n\nThis change tries to propogate to a client information that a response\nisn\u0027t complete in such cases.  In particular, with this change we no longer\npretend a returned response is complete if we wasn\u0027t able to create\na temporary file.\n\nIf an error code suggests the error wasn\u0027t fatal, we flush buffered data\nand disable keepalive, then finalize request normally.  This allows to to\npropogate information about a problem to a client, while still sending all\nthe data we\u0027ve got from an upstream.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1f6000ea44141fca5faffdbb67309f5e47f87e82",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_upstream.c",
      "new_id": "cd946340a8cc20cbb41098dfdc4b90abeb4ff4fc",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_upstream.c"
    }
  ]
}
