)]}'
{
  "commit": "a9ba4e358e88beaeebe64498be8fd7419c6d77c0",
  "tree": "34c4e3ee0ae4e9f67e632bc175d7742ee5b01a1a",
  "parents": [
    "67b53d01d0b66b4d4e07bf34af708e457ac1d5b1"
  ],
  "author": {
    "name": "Fabien Sanglard",
    "email": "sanglardf@google.com",
    "time": "Fri Nov 03 19:24:34 2023 +0000"
  },
  "committer": {
    "name": "Fabien Sanglard",
    "email": "sanglardf@google.com",
    "time": "Mon Nov 06 20:20:23 2023 +0000"
  },
  "message": "adbconnection: Reject subsequent debugger\n\nProblem: After a JDWP client has been accepted, adbconnection does not\npoll(3) adbd for incoming data. This means if a client is connected, any\nsubsequent client attempting to connect will hang (we never reply or\nclose).\n\nThere is actually a provision for this case on line 625 to reject a\nsecond debugger but this branch is never taken since we don\u0027t request\npoll(3) while we have a client.\n\nSolution: Change poll(3) request to always let us know of an incoming\nJDWP client. This let\u0027s us close(3) it and fail instead of hanging. Note\nthis was the behavior up to API 28 (Dalvik implementation).\n\nFixes: 309142640\nTest: TBD\n\nFor now, testing is done manually.\n\n```\n$ adb forward tcp:6666 jdwp:`adb shell pidof com.example.helloworld`\n$ jdb -attach localhost:6666 \u0026\n$ jdb -attach localhost:6666\njava.io.IOException: handshake failed - connection prematurally closed\n```\n\nChange-Id: I0f35bc8751acfc9740b7fd362685e96d31d03570\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82e57af536d4b88d178764d6ce9bcf8318404868",
      "old_mode": 33188,
      "old_path": "adbconnection/adbconnection.cc",
      "new_id": "55eac932d3506e54911562cc1891cb6418a7d23d",
      "new_mode": 33188,
      "new_path": "adbconnection/adbconnection.cc"
    }
  ]
}
