)]}'
{
  "commit": "fd1c35a39f3650a87540d19fe6c98beb68984d21",
  "tree": "8ab7a48ccfdd40f8d25a7ef6af18fb08eaefcd58",
  "parents": [
    "426d12f46d661c6db762da768b06a52bc1208e3e"
  ],
  "author": {
    "name": "Andrey Zelenkov",
    "email": "zelenkov@nginx.com",
    "time": "Thu Oct 26 18:00:21 2017 +0300"
  },
  "committer": {
    "name": "Andrey Zelenkov",
    "email": "zelenkov@nginx.com",
    "time": "Thu Oct 26 18:00:21 2017 +0300"
  },
  "message": "Tests: fixed parallel tests execution with UDP.\n\nPreviously, when checking ports availability, a UDP socket was always created\nfirst, then a TCP socket was created.  On success, one of UDP and TCP sockets\nwas closed (depending on the \"udp\" option) and the second one was used to busy\nthis port in other scripts.  This lead to the following problem: in an attempt\nto reopen a UDP socket used in a given testing script it could be stolen by\nanother script as part of checking ports availability.\n\nTo solve this problem, UDP and TCP ports were split into two non-overlapping\nranges: TCP ports are only used in the range 8000-8499, and UDP ports - in\nthe range 8500-8999.  In addition, the order of creating sockets in UDP tests\nhas been reversed: now a TCP socket used as a lock precedes a UDP socket.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "99397938a19f33bf80d68deda464732543318c2d",
      "old_mode": 33188,
      "old_path": "lib/Test/Nginx.pm",
      "new_id": "362d3bd4f522fe782dbd588cb8185ed6e00f81d4",
      "new_mode": 33188,
      "new_path": "lib/Test/Nginx.pm"
    }
  ]
}
