Hi Philipp,
On 31/7/24 17:17, Philipp Reisner wrote:
As with many syscalls, open() might be interrupted by a signal.
The call trace
img_open_file()
blk_new_open()
raw_open()
raw_open_common()
qemu_open()
qemu_open_internal()
qemu_open_cloexec()
Ended up in calling open() without a retry loop around it.
The experienced logfile entry is:
qemu-system-x86_64: -device
virtio-blk-pci,bus=pci.0,addr=0x7,drive=libvirt-2-format,id=virtio-disk0,bootindex=2,write-cache=on,serial=1b990c4d13b74a4e90ea:
Could not open '/dev/drbd1003': Interrupted system call
Add the RETRY_ON_EINTR() in qemu_open_cloexec() and remove it on
call-sites using qemu_open_old().
Signed-off-by: Philipp Reisner <philipp.reis...@linbit.com>
---
chardev/char-fd.c | 2 +-
chardev/char-pipe.c | 4 ++--
os-posix.c | 2 +-
util/osdep.c | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
If you need to repost, please set the next version in your patch
(which will be v4). Also avoid replying to previous version /
discussions and your patch could be missed, see
https://www.qemu.org/docs/master/devel/submitting-a-patch.html#when-resending-patches-add-a-version-tag:
Send each new revision as a new top-level thread, rather than
burying it in-reply-to an earlier revision, as many reviewers
are not looking inside deep threads for new patches.
Also please Cc qemu-bl...@nongnu.org since the block layer is
involved via the blk_new_open() call.
Regards,
Phil.