From nobody Sun Feb 8 09:10:30 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1589910476; cv=none; d=zohomail.com; s=zohoarc; b=e8cwy8+8GSc4E+imCLn17azjuCizA4qcCeKQmrZGYKWnwK/6dW5nv01Ky7pMhgeW6WAfp3T+a8ZAQCloY7ikTczAhH7Z0OyO3nvDp95ePjOs0D/gf8PaTbecfugnoRLb6TqvzIFz4l3K1lnTtPzVeVofjswwtzYDT11Eev1VNEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589910476; h=Content-Type:Content-Transfer-Encoding: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=2rXEx7WrjXuWZ3q2r0Y1moxKDZAudLhBOfp9gZpwpmw=; b=IQSCBxq0frPYGXyG5nPfBxvEhvnKuLCyg8LYIqnXc6WzXL2VyvkCFOCgM2Qinn0Cw5pYE5qTP10fMrb0b7+z4kFRGBxDaKT8NwfdV8DLtFJTLyBV7jHcTHibj4w3w6wjVTUsQrro+ykKXBnCLoy03RLml/nnLrrRR38rIchcnXU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1589910476634768.5070257378511; Tue, 19 May 2020 10:47:56 -0700 (PDT) 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-269-zgaermCTNb2t_b0BWEHIhg-1; Tue, 19 May 2020 13:47:52 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6456C100CCC0; Tue, 19 May 2020 17:47:47 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 07F1160C84; Tue, 19 May 2020 17:47:46 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 409154ED3C; Tue, 19 May 2020 17:47:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 04JHlfHF014478 for ; Tue, 19 May 2020 13:47:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id 483845D9DD; Tue, 19 May 2020 17:47:41 +0000 (UTC) Received: from catbus.gsslab.fab.redhat.com (mustard.gsslab.fab.redhat.com [10.33.8.112]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA9125D9C5; Tue, 19 May 2020 17:47:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589910475; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=2rXEx7WrjXuWZ3q2r0Y1moxKDZAudLhBOfp9gZpwpmw=; b=ZA3TNMtJAqFO8SGPI8TGI4gFa4sgWQvqQJif1MC0+it45AJy6wiLBqhalMM2tVdidvssR2 wmbhFUKFRAFUG5FzsyrWYDplxD2VVR4UGstzdjnCrpkw/FfuaDAFz0ZwbiuZJ3n26OON3G XQaxyMrIfxc6NS90qStz8Xu7ao4WfXA= X-MC-Unique: zgaermCTNb2t_b0BWEHIhg-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Subject: [libvirt PATCH 1/6] qemu: stop checking virObjectUnref return value Date: Tue, 19 May 2020 18:41:26 +0100 Message-Id: <20200519174131.91783-2-berrange@redhat.com> In-Reply-To: <20200519174131.91783-1-berrange@redhat.com> References: <20200519174131.91783-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Some, but not all, of the monitor event handlers check the virObjectUnref return value to see if the domain was disposed. It should not be possible for this to happen, since the functional ready holds a lock on the domain and has only just acquired an extra reference on the domain a few lines earlier. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_process.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index f7f6793113..51a086031d 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -307,7 +307,7 @@ qemuProcessHandleMonitorEOF(qemuMonitorPtr mon, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); qemuProcessEventFree(processEvent); goto cleanup; } @@ -840,15 +840,13 @@ qemuProcessHandleWatchdog(qemuMonitorPtr mon G_GNUC_U= NUSED, */ processEvent->vm =3D virObjectRef(vm); if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) = < 0) { - if (!virObjectUnref(vm)) - vm =3D NULL; + virObjectUnref(vm); qemuProcessEventFree(processEvent); } } } =20 - if (vm) - virObjectUnlock(vm); + virObjectUnlock(vm); virObjectEventStateQueue(driver->domainEventState, watchdogEvent); virObjectEventStateQueue(driver->domainEventState, lifecycleEvent); =20 @@ -977,7 +975,7 @@ qemuProcessHandleBlockJob(qemuMonitorPtr mon G_GNUC_UNU= SED, processEvent->status =3D status; =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0)= { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); goto cleanup; } =20 @@ -1039,7 +1037,7 @@ qemuProcessHandleJobStatusChange(qemuMonitorPtr mon G= _GNUC_UNUSED, processEvent->data =3D virObjectRef(job); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0)= { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); goto cleanup; } =20 @@ -1342,14 +1340,12 @@ qemuProcessHandleGuestPanic(qemuMonitorPtr mon G_GN= UC_UNUSED, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - if (!virObjectUnref(vm)) - vm =3D NULL; + virObjectUnref(vm); qemuProcessEventFree(processEvent); } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virObjectUnlock(vm); =20 return 0; } @@ -1383,7 +1379,7 @@ qemuProcessHandleDeviceDeleted(qemuMonitorPtr mon G_G= NUC_UNUSED, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); goto error; } =20 @@ -1554,7 +1550,7 @@ qemuProcessHandleNicRxFilterChanged(qemuMonitorPtr mo= n G_GNUC_UNUSED, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); goto error; } =20 @@ -1593,7 +1589,7 @@ qemuProcessHandleSerialChanged(qemuMonitorPtr mon G_G= NUC_UNUSED, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - ignore_value(virObjectUnref(vm)); + virObjectUnref(vm); goto error; } =20 @@ -1873,14 +1869,12 @@ qemuProcessHandleGuestCrashloaded(qemuMonitorPtr mo= n G_GNUC_UNUSED, processEvent->vm =3D virObjectRef(vm); =20 if (virThreadPoolSendJob(driver->workerPool, 0, processEvent) < 0) { - if (!virObjectUnref(vm)) - vm =3D NULL; + virObjectUnref(vm); qemuProcessEventFree(processEvent); } =20 cleanup: - if (vm) - virObjectUnlock(vm); + virObjectUnlock(vm); =20 return 0; } --=20 2.24.1