You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/block
Jakub Jelen fbdea3d6c1 ssh: Do not switch session to non-blocking mode
The libssh does not handle non-blocking mode in SFTP correctly. The
driver code already changes the mode to blocking for the SFTP
initialization, but for some reason changes to non-blocking mode.
This used to work accidentally until libssh in 0.11 branch merged
the patch to avoid infinite looping in case of network errors:

https://gitlab.com/libssh/libssh-mirror/-/merge_requests/498

Since then, the ssh driver in qemu fails to read files over SFTP
as the first SFTP messages exchanged after switching the session
to non-blocking mode return SSH_AGAIN, but that message is lost
int the SFTP internals and interpretted as SSH_ERROR, which is
returned to the caller:

https://gitlab.com/libssh/libssh-mirror/-/issues/280

This is indeed an issue in libssh that we should address in the
long term, but it will require more work on the internals. For
now, the SFTP is not supported in non-blocking mode.

Fixes: https://gitlab.com/libssh/libssh-mirror/-/issues/280
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Message-ID: <20241113125526.2495731-1-rjones@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
1 week ago
..
export block: Adjust check_block_size() signature 2 months ago
monitor nbd/server: CVE-2024-7409: Cap default max-connections to 100 4 months ago
accounting.c block: add missed block_acct_setup with new block device init procedure 2 years ago
aio_task.c block: Remove unused aio_task_pool_empty 2 months ago
amend.c block: Mark BlockDriver callbacks for amend job GRAPH_RDLOCK 2 years ago
backup.c backup: add minimum cluster size to performance options 2 months ago
blkdebug.c block: remove separate bdrv_file_open callback 5 months ago
blkio.c block/blkio: use FUA flag on write zeroes only if supported 4 months ago
blklogwrites.c block/blklogwrites: Protect mutable driver state with a mutex. 10 months ago
blkreplay.c block: Protect bs->file with graph_lock 1 year ago
blkverify.c block: remove separate bdrv_file_open callback 5 months ago
block-backend.c qapi: add qom-path to BLOCK_IO_ERROR event 1 month ago
block-copy.c block/block-copy: fix -Werror=maybe-uninitialized false-positive 2 months ago
block-gen.h block-coroutine-wrapper.py: support also basic return types 2 years ago
block-ram-registrar.c block: add BlockRAMRegistrar 2 years ago
bochs.c block: Take graph lock for most of .bdrv_open 1 year ago
cloop.c block: Take graph lock for most of .bdrv_open 1 year ago
commit.c commit: Allow users to request only format driver names in backing file format 10 months ago
copy-before-write.c block/reqlist: allow adding overlapping requests 2 months ago
copy-before-write.h backup: add minimum cluster size to performance options 2 months ago
copy-on-read.c block: Take graph lock for most of .bdrv_open 1 year ago
copy-on-read.h block: Mark bdrv_(un)freeze_backing_chain() and callers GRAPH_RDLOCK 1 year ago
coroutines.h nbd: Mark nbd_co_do_establish_connection() and callers GRAPH_RDLOCK 2 years ago
create.c block: Call .bdrv_co_create(_opts) unlocked 2 years ago
crypto.c qapi/crypto: Drop temporary 'prefix' 3 months ago
crypto.h block: Support detached LUKS header creation using qemu-img 10 months ago
curl.c block/curl: rewrite http header parsing function 5 months ago
dirty-bitmap.c block: Mark bdrv_*_dirty_bitmap() and callers GRAPH_RDLOCK 2 years ago
dmg-bz2.c Include qemu-common.h exactly where needed 6 years ago
dmg-lzfse.c block/dmg: Ignore C99 prototype declaration mismatch from <lzfse.h> 2 years ago
dmg.c block: Protect bs->file with graph_lock 1 year ago
dmg.h block/dmg: Declare a type definition for DMG uncompress function 2 years ago
file-posix.c block: fix -Werror=maybe-uninitialized false-positive 2 months ago
file-win32.c block: remove separate bdrv_file_open callback 5 months ago
filter-compress.c block: Take graph lock for most of .bdrv_open 1 year ago
gluster.c block/gluster: Use g_autofree for string in qemu_gluster_parse_json() 1 month ago
graph-lock.c graph-lock: remove AioContext locking 12 months ago
io.c Consider discard option when writing zeros 5 months ago
io_uring.c block/io_uring: improve error message when init fails 10 months ago
iscsi-opts.c modules: add block module annotations 3 years ago
iscsi.c block: remove separate bdrv_file_open callback 5 months ago
linux-aio.c linux-aio: add IO_CMD_FDSYNC command support 6 months ago
meson.build Revert "meson: Propagate gnutls dependency" 5 months ago
mirror.c block/mirror: fix -Werror=maybe-uninitialized false-positive 2 months ago
nbd.c block: remove separate bdrv_file_open callback 5 months ago
nfs.c block: remove separate bdrv_file_open callback 5 months ago
null.c block: rename former bdrv_file_open callbacks 5 months ago
nvme.c block: rename former bdrv_file_open callbacks 5 months ago
parallels-ext.c qapi/crypto: Rename QCryptoHashAlgorithm to *Algo, and drop prefix 3 months ago
parallels.c parallels: fix possible int overflow 1 week ago
parallels.h block: Protect bs->file with graph_lock 1 year ago
preallocate.c block: Protect bs->file with graph_lock 1 year ago
progress_meter.c coroutine: Clean up superfluous inclusion of qemu/lockable.h 2 years ago
qapi-sysemu.c block: remove AioContext locking 12 months ago
qapi.c qemu-img: Fix Column Width and Improve Formatting in snapshot list 9 months ago
qcow.c qapi/crypto: Drop temporary 'prefix' 3 months ago
qcow2-bitmap.c block/qcow2-bitmap: Replace g_memdup() by g_memdup2() 7 months ago
qcow2-cache.c qcow2: Mark qcow2_signal_corruption() and callers GRAPH_RDLOCK 1 year ago
qcow2-cluster.c qcow2: Take locks for accessing bs->file 1 year ago
qcow2-refcount.c qcow2: Mark qcow2_signal_corruption() and callers GRAPH_RDLOCK 1 year ago
qcow2-snapshot.c qcow2: mark various functions as coroutine_fn and GRAPH_RDLOCK 2 years ago
qcow2-threads.c thread-pool: avoid passing the pool parameter every time 2 years ago
qcow2.c block: replace assert(false) with g_assert_not_reached() 2 months ago
qcow2.h qcow2: Take locks for accessing bs->file 1 year ago
qed-check.c qed: mark more functions as coroutine_fns and GRAPH_RDLOCK 1 year ago
qed-cluster.c
qed-l2-cache.c osdep: Move memalign-related functions to their own header 3 years ago
qed-table.c block: use bdrv_co_debug_event in coroutine context 1 year ago
qed.c block/qed: Fix missing ERRP_GUARD() for error_prepend() 9 months ago
qed.h block: Protect bs->file with graph_lock 1 year ago
quorum.c qapi/crypto: Rename QCryptoHashAlgorithm to *Algo, and drop prefix 3 months ago
raw-format.c raw-format: Fix error message for invalid offset/size 1 month ago
rbd.c qapi/crypto: Rename QCryptoCipherAlgorithm to *Algo, and drop prefix 3 months ago
replication.c qapi: blockdev-backup: add discard-source parameter 6 months ago
reqlist.c block/reqlist: allow adding overlapping requests 2 months ago
snapshot-access.c block: Take graph lock for most of .bdrv_open 1 year ago
snapshot.c qapi: Inline and remove QERR_DEVICE_HAS_NO_MEDIUM definition 7 months ago
ssh.c ssh: Do not switch session to non-blocking mode 1 week ago
stream.c block/stream: fix -Werror=maybe-uninitialized false-positives 2 months ago
throttle-groups.c block: mark mixed functions that can suspend 1 year ago
throttle.c block: Take graph lock for most of .bdrv_open 1 year ago
trace-events nbd/client: Accept 64-bit block status chunks 1 year ago
trace.h trace: switch position of headers to what Meson requires 4 years ago
vdi.c block/vdi.c: Make SECTOR_SIZE constant 64-bits 1 month ago
vhdx-endian.c Include qemu-common.h exactly where needed 6 years ago
vhdx-log.c vhdx: Take locks for accessing bs->file 1 year ago
vhdx.c vhdx: Take locks for accessing bs->file 1 year ago
vhdx.h vhdx: Take locks for accessing bs->file 1 year ago
vmdk.c block/vmdk: Improve error messages on extent write error 6 months ago
vpc.c block: Take graph lock for most of .bdrv_open 1 year ago
vvfat.c vvfat: Fix reading files with non-continuous clusters 4 months ago
win32-aio.c aio: remove aio_disable_external() API 2 years ago
write-threshold.c block: remove AioContext locking 12 months ago