)]}'
{
  "commit": "68224970f4e90f15f5b0037e5d9dc0586a699227",
  "tree": "e69f3694cce99d0315830aad61cf66e242c0afed",
  "parents": [
    "ba2b1772b60bff88dbda83abe8423a7b55bbde51"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Nov 20 16:31:07 2017 +0300"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Mon Nov 20 16:31:07 2017 +0300"
  },
  "message": "Fixed worker_shutdown_timeout in various cases.\n\nThe ngx_http_upstream_process_upgraded() did not handle c-\u003eclose request,\nand upgraded connections do not use the write filter.  As a result,\nworker_shutdown_timeout did not affect upgraded connections (ticket #1419).\nFix is to handle c-\u003eclose in the ngx_http_request_handler() function, thus\ncovering most of the possible cases in http handling.\n\nAdditionally, mail proxying did not handle neither c-\u003eclose nor c-\u003eerror,\nand thus worker_shutdown_timeout did not work for mail connections.  Fix is\nto add c-\u003eclose handling to ngx_mail_proxy_handler().\n\nAlso, added explicit handling of c-\u003eclose to stream proxy,\nngx_stream_proxy_process_connection().  This improves worker_shutdown_timeout\nhandling in stream, it will no longer wait for some data being transferred\nin a connection before closing it, and will also provide appropriate\nlogging at the \"info\" level.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "de1b20270a8d386cd2ce6de27910f3f6e8d888e9",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request.c",
      "new_id": "5668bf441bd0cc562e79b23e5c3e376dd35b98c2",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request.c"
    },
    {
      "type": "modify",
      "old_id": "007284b6848f9f59dda02486390c1b68b0357b88",
      "old_mode": 33188,
      "old_path": "src/mail/ngx_mail_proxy_module.c",
      "new_id": "1c86e54cfe1dc66c52a0dd7e65920521f7a7d45a",
      "new_mode": 33188,
      "new_path": "src/mail/ngx_mail_proxy_module.c"
    },
    {
      "type": "modify",
      "old_id": "9d4b075fb22859e1924b0e1d115c159c758dfcfe",
      "old_mode": 33188,
      "old_path": "src/stream/ngx_stream_proxy_module.c",
      "new_id": "ad81cc8b727f69becd7b31fc3c625a119191c57d",
      "new_mode": 33188,
      "new_path": "src/stream/ngx_stream_proxy_module.c"
    }
  ]
}
