From nobody Sun Feb 8 14:59:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1619103414; cv=none; d=zohomail.com; s=zohoarc; b=lq2pOniqBdqsHxIaw6Jm/GSWxZfW96eG1HzSvLzYGWiq5zGDgxWMLE/WSJJ7S4+7A0EWBG8I4ZxRhtv4XjiId2qDgiwAC7nodRDBjo4NFrw1PffdTUnpAs/nnzZWOZpVQIMC6+6hQ3FPx3DnkS13sIWz2gQfV5stqhyKzSmB9xI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619103414; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cO+eCaUPcKADp1gobu7hh4iVwLzANmkFtCy3IrD9vUs=; b=Q1tDt9/bGXzPpnVcPhR1cFGFcIh5QBIAGBS3vl4BTEwuYIqGZICRfXEvPhmRJpPSOJtoEQNgbDTD98CoHdQbbGPV/4WWVfhvmMTZnyldF6kHi5z31zJiRCvUl5RChAG8dJql4Np79G0+HxI43Sb1WRFSUztQcdD/6159AO9ekMM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1619103414275777.135699107919; Thu, 22 Apr 2021 07:56:54 -0700 (PDT) Received: from localhost ([::1]:55618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZalB-0008WU-0f for importer@patchew.org; Thu, 22 Apr 2021 10:56:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZajY-0007gR-7c for qemu-devel@nongnu.org; Thu, 22 Apr 2021 10:55:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:42384) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZajV-0000Kb-Ei for qemu-devel@nongnu.org; Thu, 22 Apr 2021 10:55:11 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-552-Wohl_EjzNDi-JQgjqVK5ag-1; Thu, 22 Apr 2021 10:55:03 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D686883DD33; Thu, 22 Apr 2021 14:53:46 +0000 (UTC) Received: from localhost (ovpn-113-187.ams2.redhat.com [10.36.113.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1625F5D9C6; Thu, 22 Apr 2021 14:53:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1619103307; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cO+eCaUPcKADp1gobu7hh4iVwLzANmkFtCy3IrD9vUs=; b=Mc3YQr2JFVLSTMgih749+RFfKb6DT//hjGnj+OSlNl5Z6hpwK3Uwldg7oFo/OPU5OcbysO 9sajrKMySiusxZFonudADoNng50AGKBR5SjHHAAExZ4rEhJQR7BIk7v2l/MRV8mtjyR7Ao iEGn0hVvokKPYZ892gxkwfYvIXp7bNY= X-MC-Unique: Wohl_EjzNDi-JQgjqVK5ag-1 From: Max Reitz To: qemu-block@nongnu.org Subject: [PATCH 1/2] block/export: Free ignored Error Date: Thu, 22 Apr 2021 16:53:34 +0200 Message-Id: <20210422145335.65814-2-mreitz@redhat.com> In-Reply-To: <20210422145335.65814-1-mreitz@redhat.com> References: <20210422145335.65814-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=mreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When invoking block-export-add with some iothread and fixed-iothread=3Dfalse, and changing the node's iothread fails, the error is supposed to be ignored. However, it is still stored in *errp, which is wrong. If a second error occurs, the "*errp must be NULL" assertion in error_setv() fails: qemu-system-x86_64: ../util/error.c:59: error_setv: Assertion `*errp =3D=3D NULL' failed. So the error from bdrv_try_set_aio_context() must be freed when it is ignored. Fixes: f51d23c80af73c95e0ce703ad06a300f1b3d63ef ("block/export: add iothread and fixed-iothread options") Signed-off-by: Max Reitz Reviewed-by: Stefan Hajnoczi Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/export/export.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/export/export.c b/block/export/export.c index fec7d9f738..ce5dd3e59b 100644 --- a/block/export/export.c +++ b/block/export/export.c @@ -68,6 +68,7 @@ static const BlockExportDriver *blk_exp_find_driver(Block= ExportType type) =20 BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp) { + ERRP_GUARD(); bool fixed_iothread =3D export->has_fixed_iothread && export->fixed_io= thread; const BlockExportDriver *drv; BlockExport *exp =3D NULL; @@ -127,6 +128,9 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Er= ror **errp) ctx =3D new_ctx; } else if (fixed_iothread) { goto fail; + } else { + error_free(*errp); + *errp =3D NULL; } } =20 --=20 2.30.2 From nobody Sun Feb 8 14:59:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1619103459; cv=none; d=zohomail.com; s=zohoarc; b=Zevmb0/LmMv0EFxrlqkMqSL/ppuDZ13lT40IlEaayKzjl7j9if71qSiRUHTM3pfbBIsMZM9uqKmn2rQ+VgAqPVi/zoAgIrgwktkZpwDV2Pggp4po1O0IFgNg1CJonNVWtFRQDW/35kqF951OXpynedAx4QU3En1/XYIHvdgmPK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1619103459; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gBzUI7pOfyMxlNSariLd6PJx0o111oBRF0F5uT7g7Bg=; b=B1ZNj4HZkenCQDoaizrXNbyXDaHA1q3u1HRfT7n3yQdnR5Pv4kNhE3vrW3w0lT+eOSiJgnkb444FTwTd2hyV4Zpq7BY7ZGZlGfojjMQ0Dwxk8+EVufieteB0krYalbKgm3mOgZUQR953hVXXqhPUosk69T6gRPZZzn5T6TgnP5c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1619103459271315.6818495665916; Thu, 22 Apr 2021 07:57:39 -0700 (PDT) Received: from localhost ([::1]:56332 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZalu-0000U2-6f for importer@patchew.org; Thu, 22 Apr 2021 10:57:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZajp-0007u0-Hh for qemu-devel@nongnu.org; Thu, 22 Apr 2021 10:55:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39120) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZajn-0000cY-Mb for qemu-devel@nongnu.org; Thu, 22 Apr 2021 10:55:29 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-333-a2_Q9jYIM66pqdPMnDsIfQ-1; Thu, 22 Apr 2021 10:55:23 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 794D4108442F; Thu, 22 Apr 2021 14:53:52 +0000 (UTC) Received: from localhost (ovpn-113-187.ams2.redhat.com [10.36.113.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B4A4719C71; Thu, 22 Apr 2021 14:53:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1619103327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gBzUI7pOfyMxlNSariLd6PJx0o111oBRF0F5uT7g7Bg=; b=iRSLkrTCPjHHh1qZVRMEYne/y3iy4q0iZptNkXHzhjV81Gx/cq+UbLHvFQe29NZqs917Y3 PFh5eI0o5qB/NMWjaGSpa/Uv11uM5YbpnbmBmgOf3M4w5j+3ekrr8WxMl+8T2t9GqEUbTe dgJ8pkI4gTMaWrPbcFvuDD6/ZgwpaLg= X-MC-Unique: a2_Q9jYIM66pqdPMnDsIfQ-1 From: Max Reitz To: qemu-block@nongnu.org Subject: [PATCH 2/2] iotests/307: Test iothread conflict for exports Date: Thu, 22 Apr 2021 16:53:35 +0200 Message-Id: <20210422145335.65814-3-mreitz@redhat.com> In-Reply-To: <20210422145335.65814-1-mreitz@redhat.com> References: <20210422145335.65814-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mreitz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=mreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Passing fixed-iothread=3Dtrue should make iothread conflicts fatal, whereas fixed-iothread=3Dfalse should not. Combine the second case with an error condition that is checked after the iothread is handled, to verify that qemu does not crash if there is such an error after changing the iothread failed. Signed-off-by: Max Reitz Reviewed-by: Stefan Hajnoczi Reviewed-by: Vladimir Sementsov-Ogievskiy Tested-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/307 | 15 +++++++++++++++ tests/qemu-iotests/307.out | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/tests/qemu-iotests/307 b/tests/qemu-iotests/307 index c7685347bc..b429b5aa50 100755 --- a/tests/qemu-iotests/307 +++ b/tests/qemu-iotests/307 @@ -41,9 +41,11 @@ with iotests.FilePath('image') as img, \ iotests.log('=3D=3D=3D Launch VM =3D=3D=3D') =20 vm.add_object('iothread,id=3Diothread0') + vm.add_object('iothread,id=3Diothread1') vm.add_blockdev(f'file,filename=3D{img},node-name=3Dfile') vm.add_blockdev(f'{iotests.imgfmt},file=3Dfile,node-name=3Dfmt') vm.add_blockdev('raw,file=3Dfile,node-name=3Dro,read-only=3Don') + vm.add_blockdev('null-co,node-name=3Dnull') vm.add_device(f'id=3Dscsi0,driver=3Dvirtio-scsi,iothread=3Diothread0') vm.launch() =20 @@ -74,6 +76,19 @@ with iotests.FilePath('image') as img, \ vm.qmp_log('query-block-exports') iotests.qemu_nbd_list_log('-k', socket) =20 + iotests.log('\n=3D=3D=3D Add export with conflicting iothread =3D=3D= =3D') + + vm.qmp_log('device_add', id=3D'sdb', driver=3D'scsi-hd', drive=3D'null= ') + + # Should fail because of fixed-iothread + vm.qmp_log('block-export-add', id=3D'export1', type=3D'nbd', node_name= =3D'null', + iothread=3D'iothread1', fixed_iothread=3DTrue, writable=3DT= rue) + + # Should ignore the iothread conflict, but then fail because of the + # permission conflict (and not crash) + vm.qmp_log('block-export-add', id=3D'export1', type=3D'nbd', node_name= =3D'null', + iothread=3D'iothread1', fixed_iothread=3DFalse, writable=3D= True) + iotests.log('\n=3D=3D=3D Add a writable export =3D=3D=3D') =20 # This fails because share-rw=3Doff diff --git a/tests/qemu-iotests/307.out b/tests/qemu-iotests/307.out index daa8ad2da0..69439d96ff 100644 --- a/tests/qemu-iotests/307.out +++ b/tests/qemu-iotests/307.out @@ -51,6 +51,14 @@ exports available: 1 base:allocation =20 =20 +=3D=3D=3D Add export with conflicting iothread =3D=3D=3D +{"execute": "device_add", "arguments": {"drive": "null", "driver": "scsi-h= d", "id": "sdb"}} +{"return": {}} +{"execute": "block-export-add", "arguments": {"fixed-iothread": true, "id"= : "export1", "iothread": "iothread1", "node-name": "null", "type": "nbd", "= writable": true}} +{"error": {"class": "GenericError", "desc": "Cannot change iothread of act= ive block backend"}} +{"execute": "block-export-add", "arguments": {"fixed-iothread": false, "id= ": "export1", "iothread": "iothread1", "node-name": "null", "type": "nbd", = "writable": true}} +{"error": {"class": "GenericError", "desc": "Conflicts with use by sdb as = 'root', which does not allow 'write' on null"}} + =3D=3D=3D Add a writable export =3D=3D=3D {"execute": "block-export-add", "arguments": {"description": "This is the = writable second export", "id": "export1", "name": "export1", "node-name": "= fmt", "type": "nbd", "writable": true, "writethrough": true}} {"error": {"class": "GenericError", "desc": "Conflicts with use by sda as = 'root', which does not allow 'write' on fmt"}} --=20 2.30.2