From nobody Mon Apr 29 05:32:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1524839547766590.6360450651108; Fri, 27 Apr 2018 07:32:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 993D781127; Fri, 27 Apr 2018 14:32:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E45891001645; Fri, 27 Apr 2018 14:32:24 +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 5671218033EB; Fri, 27 Apr 2018 14:32:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w3REQjoM023901 for ; Fri, 27 Apr 2018 10:26:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6DB83215CDCF; Fri, 27 Apr 2018 14:26:45 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id E7EBA215CDCB; Fri, 27 Apr 2018 14:26:44 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Fri, 27 Apr 2018 16:26:36 +0200 Message-Id: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH] qemu: migration: Don't crash on access to 'current' job 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 27 Apr 2018 14:32:26 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" When a VM is destroyed while being migrated (waiting in qemuMigrationSrcWaitForCompletion) the private object cleanup code frees the 'current' job info. Since the migration code attempts to setup various aspects of the current job even on failure this results into a crash. Job data is cleared in qemuDomainObjPrivateDataClear since commit 888aa4b6b9db Signed-off-by: Peter Krempa --- I'm not certain that there isn't any other bigger root cause for this, but if the job is not present due to the VM being destroyed, it does not make much sense to set any data. src/qemu/qemu_migration.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 88b8253fa9..9f4de08d46 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3552,6 +3552,7 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, orig_err =3D virSaveLastError(); if (cancel && + priv->job.current && priv->job.current->status !=3D QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLET= ED && virDomainObjIsActive(vm) && qemuDomainObjEnterMonitorAsync(driver, vm, @@ -3569,7 +3570,8 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, if (iothread) qemuMigrationSrcStopTunnel(iothread, true); - if (priv->job.current->status !=3D QEMU_DOMAIN_JOB_STATUS_CANCELED) + if (priv->job.current && + priv->job.current->status !=3D QEMU_DOMAIN_JOB_STATUS_CANCELED) priv->job.current->status =3D QEMU_DOMAIN_JOB_STATUS_FAILED; goto cleanup; --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list