)]}'
{
  "commit": "c82c38af8d2e99dc0267d4aad71c517f9fb0e70b",
  "tree": "c39911bf624cfe2c8e479dc14a340cf95ed7d8a2",
  "parents": [
    "114f060fca5e73520dcc74c3779493dc211e4497"
  ],
  "author": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Mon Dec 26 14:27:05 2016 +0300"
  },
  "committer": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Mon Dec 26 14:27:05 2016 +0300"
  },
  "message": "Stream: speed up TCP peer recovery.\n\nPreviously, an unavailable peer was considered recovered after a successful\nproxy session to this peer.  Until then, only a single client connection per\nfail_timeout was allowed to be proxied to the peer.\n\nSince stream sessions can be long, it may take indefinite time for a peer to\nrecover, limiting the ability of the peer to receive new connections.\n\nNow, a peer is considered recovered after a successful TCP connection is\nestablished to it.  Balancers are notified of this event via the notify()\ncallback.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c03b515057d175b0a3b79a8667d8e5d695009584",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_proxy_module.c",
      "new_id": "bfd78d5bb2b57396f73c8cd99df866ef77d4cfb2",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_proxy_module.c"
    },
    {
      "type": "modify",
      "old_id": "ec75768f8dd8f47f19da2cc8acd885af361c195c",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_upstream.h",
      "new_id": "90076e0c6f959bfd5440664a2dc5d1636b226a62",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_upstream.h"
    },
    {
      "type": "modify",
      "old_id": "db620ef9ebe06503248fe2a402e4b783b682da58",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_upstream_round_robin.c",
      "new_id": "526de3a8059acacdf19d03fa1a47d61b2e61798d",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_upstream_round_robin.c"
    }
  ]
}
