)]}'
{
  "commit": "5f8741fca51d6984ea5fa7bf73cc6c04e8a98585",
  "tree": "e3e322f2e02e3dab20b7668fcb85a8f9d2638696",
  "parents": [
    "c31a4457498bb845ffcb70068f976e14a3cadaad"
  ],
  "author": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Mon Nov 03 21:29:21 2025 -0500"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Tue Nov 11 17:32:48 2025 +0100"
  },
  "message": "aio-posix: fix spurious return from -\u003ewait() due to signals\n\nio_uring_enter(2) only returns -EINTR in some cases when interrupted by\na signal. Therefore the while loop in fdmon_io_uring_wait() is\nincomplete and can lead to a spurious early return.\n\nHandle the case when a signal interrupts io_uring_enter(2) but the\nsyscall returns the number of SQEs submitted (that takes priority over\n-EINTR).\n\nThis patch probably makes little difference for QEMU, but the test suite\nrelies on the exact pattern of aio_poll() return values, so it\u0027s best to\nhide this io_uring syscall interface quirk.\n\nHere is the strace of test-aio receiving 3 SIGCONT signals after this\nfix has been applied. Notice how the io_uring_enter(2) return value is 1\nthe first time because an SQE was submitted, but -EINTR the other times:\n\n  eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) \u003d 9\n  io_uring_enter(7, 1, 0, 0, NULL, 8) \u003d 1\n  clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec\u003d1, tv_nsec\u003d0}, 0x7ffe38a46240) \u003d 0\n  io_uring_enter(7, 1, 1, IORING_ENTER_GETEVENTS, NULL, 8) \u003d 1\n  --- SIGCONT {si_signo\u003dSIGCONT, si_code\u003dSI_USER, si_pid\u003d596096, si_uid\u003d1000} ---\n  io_uring_enter(7, 0, 1, IORING_ENTER_GETEVENTS, NULL, 8) \u003d -1 EINTR (Interrupted system call)\n  --- SIGCONT {si_signo\u003dSIGCONT, si_code\u003dSI_USER, si_pid\u003d596096, si_uid\u003d1000} ---\n  io_uring_enter(7, 0, 1, IORING_ENTER_GETEVENTS, NULL, 8 \u003cunfinished ...\u003e\n  \u003c... io_uring_enter resumed\u003e) \u003d -1 EINTR (Interrupted system call)\n  --- SIGCONT {si_signo\u003dSIGCONT, si_code\u003dSI_USER, si_pid\u003d596096, si_uid\u003d1000} ---\n  io_uring_enter(7, 0, 1, IORING_ENTER_GETEVENTS, NULL, 8 \u003cunfinished ...\u003e\n  \u003c... io_uring_enter resumed\u003e) \u003d 0\n\nReported-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nMessage-ID: \u003c20251104022933.618123-4-stefanha@redhat.com\u003e\nReviewed-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b64ce42513552d08be3796ceade245112a68add9",
      "old_mode": 33188,
      "old_path": "util/fdmon-io_uring.c",
      "new_id": "3d8638b0e5df6f5125832365eb52cac671117252",
      "new_mode": 33188,
      "new_path": "util/fdmon-io_uring.c"
    }
  ]
}
