)]}'
{
  "commit": "041e32b8d9d076980b4e35317c0339e57ab888f1",
  "tree": "a75e5f82c44a4c87d9294c85af14954b3939a918",
  "parents": [
    "0c9390d978cbf61e8f16c9f580fa96b305c43568"
  ],
  "author": {
    "name": "Max Reitz",
    "email": "mreitz@redhat.com",
    "time": "Sun Jun 11 14:37:14 2017 +0200"
  },
  "committer": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Thu Jun 15 11:04:05 2017 +0200"
  },
  "message": "qemu-nbd: Ignore SIGPIPE\n\nqemu proper has done so for 13 years\n(8a7ddc38a60648257dc0645ab4a05b33d6040063), qemu-img and qemu-io have\ndone so for four years (526eda14a68d5b3596be715505289b541288ef2a).\nIgnoring this signal is especially important in qemu-nbd because\notherwise a client can easily take down the qemu-nbd server by dropping\nthe connection when the server wants to send something, for example:\n\n$ qemu-nbd -x foo -f raw -t null-co:// \u0026\n[1] 12726\n$ qemu-io -c quit nbd://localhost/bar\ncan\u0027t open device nbd://localhost/bar: No export with name \u0027bar\u0027 available\n[1]  + 12726 broken pipe  qemu-nbd -x foo -f raw -t null-co://\n\nIn this case, the client sends an NBD_OPT_ABORT and closes the\nconnection (because it is not required to wait for a reply), but the\nserver replies with an NBD_REP_ACK (because it is required to reply).\n\nSigned-off-by: Max Reitz \u003cmreitz@redhat.com\u003e\nMessage-Id: \u003c20170611123714.31292-1-mreitz@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9464a0461c1a2d6e43bfeddbbf051a9693f218e2",
      "old_mode": 33188,
      "old_path": "qemu-nbd.c",
      "new_id": "4dd3fd47328de8f67d4a20ed7b8338ee8be6bd6b",
      "new_mode": 33188,
      "new_path": "qemu-nbd.c"
    }
  ]
}
