From nobody Sat Nov 23 17:28:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1731502589; cv=none; d=zohomail.com; s=zohoarc; b=WH24kiP9MB2Zw7Fb5Fbz7P6bKnOSnbT2dCaZtfYCylEWcR188PEBXxHl8TLPJXNsnjWi7SGk/AlwmXS2velHtvxwVlwqgxDgi+GbOfKqR8lu2NE5QUda2l2Ll9kRMSaDH8NN3UMtBoa8V249Lm1lkUJHNUdpwvsesl+Rs12gpfE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1731502589; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ep8pWqFmpmfsKbUQSXa/buf9WcOM3yVH9VVC1Qi6QNM=; b=I5e6/sJQP1sQYvyKrU1sTgF9uDKmDd+tG1bfzscRU1pj105p7cSE43qth7+yHNWV8TQz7O3qU3Dvq1M8+Z0BxC0vNx0Jn3EFIqfJHNJknx1D6VyWcstCzWSeaJ0TskeGqXML9d+cxBGPeVMeGjmVgox7TPjCoQ2seVUZ0yt9m5I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1731502589863244.29415845669075; Wed, 13 Nov 2024 04:56:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBCuK-0006BJ-9T; Wed, 13 Nov 2024 07:55:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBCuG-0006BB-ED for qemu-devel@nongnu.org; Wed, 13 Nov 2024 07:55:36 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBCuE-000645-IZ for qemu-devel@nongnu.org; Wed, 13 Nov 2024 07:55:36 -0500 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-82-6c5U0ccyN2a1_vTEquTzDw-1; Wed, 13 Nov 2024 07:55:31 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6D5BE1954234; Wed, 13 Nov 2024 12:55:30 +0000 (UTC) Received: from cash.home.annexia.org (unknown [10.42.28.15]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8F86030000DF; Wed, 13 Nov 2024 12:55:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731502532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Ep8pWqFmpmfsKbUQSXa/buf9WcOM3yVH9VVC1Qi6QNM=; b=OoQQGeNyArJweorlgnd+DnLgF5/VwSUP3dF3G211fkecen+YyQOFX7kC9iQIAYc+A4lUc3 Z9IoVoAPDTAzvNN42hRp/uasNkHmuvSn0+91S/Ew3+VXQOAh7gf+zvwBCpwCNMiZ+XoZsq Sanf0Nwyg2bMdbY4oMHSJkMf6Q1qzmo= X-MC-Unique: 6c5U0ccyN2a1_vTEquTzDw-1 X-Mimecast-MFC-AGG-ID: 6c5U0ccyN2a1_vTEquTzDw From: "Richard W.M. Jones" To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com, jjelen@redhat.com, mpitt@redhat.com Subject: [PATCH ssh v2] ssh: Do not switch session to non-blocking mode Date: Wed, 13 Nov 2024 12:55:23 +0000 Message-ID: <20241113125526.2495731-1-rjones@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=rjones@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.119, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1731502592007116600 Content-Type: text/plain; charset="utf-8" From: Jakub Jelen 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 Signed-off-by: Richard W.M. Jones --- block/ssh.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/block/ssh.c b/block/ssh.c index 9f8140bcb6..b9f33ec739 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -866,9 +866,6 @@ static int ssh_open(BlockDriverState *bs, QDict *option= s, int bdrv_flags, goto err; } =20 - /* Go non-blocking. */ - ssh_set_blocking(s->session, 0); - if (s->attrs->type =3D=3D SSH_FILEXFER_TYPE_REGULAR) { bs->supported_truncate_flags =3D BDRV_REQ_ZERO_WRITE; } --=20 2.46.0