From nobody Tue May 14 04:38:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=suse.de Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1647520147067499.97609421422305; Thu, 17 Mar 2022 05:29:07 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-418-W-LX6hwYPfmGz8ZNlIUFXQ-1; Thu, 17 Mar 2022 08:28:28 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 12CD61C05159; Thu, 17 Mar 2022 12:28:26 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8415C4087D7E; Thu, 17 Mar 2022 12:28:25 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 558E2194036B; Thu, 17 Mar 2022 12:28:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 37F36194035E for ; Thu, 17 Mar 2022 12:28:24 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 210E040D2829; Thu, 17 Mar 2022 12:28:24 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1D24540D2820 for ; Thu, 17 Mar 2022 12:28:24 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BD3CD811E75 for ; Thu, 17 Mar 2022 12:28:23 +0000 (UTC) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-297-oPh5n7sjMm2BDvdnAPTiIw-1; Thu, 17 Mar 2022 08:28:22 -0400 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id DA8A81F390; Thu, 17 Mar 2022 12:28:20 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B68E513B9F; Thu, 17 Mar 2022 12:28:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Q7k1KmQpM2KtcwAAMHmgww (envelope-from ); Thu, 17 Mar 2022 12:28:20 +0000 X-MC-Unique: W-LX6hwYPfmGz8ZNlIUFXQ-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: oPh5n7sjMm2BDvdnAPTiIw-1 To: libvir-list@redhat.com From: Claudio Fontana Subject: sigfault in virObjectLockGuard Message-ID: Date: Thu, 17 Mar 2022 13:28:20 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1647520148603100001 Content-Type: text/plain; charset="utf-8" Hello all, while experimenting with upstream libvirt, I encountered the following segf= ault when trying to virt-install a centos7 guest: ---- #! /bin/bash ISO=3DCentOS-7-x86_64-Minimal-2009.iso DISK=3Dcentos7.qcow2 rm ${DISK} qemu-img create -f qcow2 ${DISK} 30G virt-install --virt-type=3Dkvm --name=3Dcentos7 --vcpus=3D2 --memory=3D3072= 0 --location ${ISO} --disk path=3D${DISK},format=3Dqcow2 --network default = --graphics none --os-variant=3Dcentos7.0 --extra-args console=3DttyS0 ----- This triggers a segfault in libvirtd as follows: Thread 5 "rpc-libvirtd" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fca0b7fe640 (LWP 55658)] ___pthread_mutex_lock (mutex=3Dmutex@entry=3D0x18) at pthread_mutex_lock.c:= 80 80 unsigned int type =3D PTHREAD_MUTEX_TYPE_ELISION (mutex); (gdb) bt #0 ___pthread_mutex_lock (mutex=3Dmutex@entry=3D0x18) at pthread_mutex_loc= k.c:80 #1 0x00007fca132b8275 in virMutexLock (m=3Dm@entry=3D0x18) at ../src/util/= virthread.c:91 #2 0x00007fca132b829a in virLockGuardLock (m=3D0x18) at ../src/util/virthr= ead.c:102 #3 0x00007fca1329c519 in virObjectLockGuard (anyobj=3Danyobj@entry=3D0x7fc= a13539310 ) at ../src/util/virobject.c:441 #4 0x00007fca1328b5f1 in virNetDevGenerateName (ifname=3Difname@entry=3D0x= 7fca00018158, type=3Dtype@entry=3DVIR_NET_DEV_GEN_NAME_VNET) at ../src/util/virnetdev.c:3619 #5 0x00007fca13293b9d in virNetDevTapCreate (ifname=3Difname@entry=3D0x7fca00018158, tunpath=3Dtunpath@entry=3D0x7f= ca0845accd "/dev/net/tun", tapfd=3Dtapfd@entry=3D0x7fca00043fc0, tapfdSize= =3DtapfdSize@entry=3D1, flags=3Dflags@entry=3D3) at ../src/util/virnetdevta= p.c:183 #6 0x00007fca13294501 in virNetDevTapCreateInBridgePort (brname=3Dbrname@entry=3D0x7fca000163c0 "br0", ifname=3Difname@entry=3D= 0x7fca00018158, macaddr=3Dmacaddr@entry=3D0x7fca00018034, vmuuid=3Dvmuuid@e= ntry=3D0x7fca000156b8 "\232T\020\250~\024Mn\211\227\062\"\264\001\025\030",= tunpath=3Dtunpath@entry=3D0x7fca0845accd "/dev/net/tun", tapfd=3Dtapfd@ent= ry=3D0x7fca00043fc0, tapfdSize=3D1, virtPortProfile=3D0x0, virtVlan=3D0x0, = isolatedPort=3DVIR_TRISTATE_BOOL_ABSENT, coalesce=3D0x0, mtu=3D0, actualMTU= =3D0x0, flags=3D3) at ../src/util/virnetdevtap.c:602 #7 0x00007fca083d66f5 in qemuInterfaceBridgeConnect (def=3Ddef@entry=3D0x7fca000156b0, driver=3Ddriver@entry=3D0x7fc9c00509= 80, net=3Dnet@entry=3D0x7fca00018030, tapfd=3Dtapfd@entry=3D0x7fca00043fc0,= tapfdSize=3DtapfdSize@entry=3D0x7fca0b7fd410) at ../src/qemu/qemu_interfac= e.c:564 #8 0x00007fca08370f35 in qemuBuildInterfaceCommandLine (vm=3D, vm=3D, nicindexes=3D0x7fca0b7fd57= 0, nnicindexes=3D0x7fca0b7fd568, standalone=3Dfalse, vmop=3DVIR_NETDEV_VPOR= T_PROFILE_OP_CREATE, qemuCaps=3D0x7fc9fc0145a0 [virQEMUCaps], net=3D0x7fca0= 0018030, cmd=3D0x7fca00041300, driver=3D0x7fc9c0050980) at ../src/qemu/qemu_command.c:8669 #9 qemuBuildNetCommandLine (nicindexes=3D0x7fca0b7fd570, nnicindexes=3D0x7fca0b7fd568, standalone= =3D, vmop=3DVIR_NETDEV_VPORT_PROFILE_OP_CREATE, qemuCaps=3D0= x7fc9fc0145a0 [virQEMUCaps], cmd=3D0x7fca00041300, vm=3D, dr= iver=3D0x7fc9c0050980) at ../src/qemu/qemu_command.c:8958 #10 qemuBuildCommandLine (driver=3Ddriver@entry=3D0x7fc9c0050980, vm=3D0x7f= c9fc31f5e0 [virDomainObj],=20 vm@entry=3D0x2200000000, migrateURI=3D0x0, snapshot=3D0x0,=20 snapshot@entry=3D0x7fc9c0013190, vmop=3Dvmop@entry=3DVIR_NETDEV_VPORT_P= ROFILE_OP_CREATE, standalone=3Dstandalone@entry=3Dfalse, enableFips=3Dfalse= , nnicindexes=3D0x7fca0b7fd568, nicindexes=3D0x7fca0b7fd570, flags=3D0) at = ../src/qemu/qemu_command.c:10548 #11 0x00007fca0841adc2 in qemuProcessLaunch (conn=3D0x7fc9c0022070, driver=3D0x7fc9c0050980, vm=3D0x2200000000, asy= ncJob=3DQEMU_ASYNC_JOB_NONE, incoming=3D0x0, snapshot=3D0x7fc9c0013190, vmo= p=3DVIR_NETDEV_VPORT_PROFILE_OP_CREATE, flags=3D17) at ../src/qemu/qemu_pro= cess.c:7435 #12 0x00007fca08420669 in qemuProcessStart (conn=3Dconn@entry=3D0x7fc9c0013190, driver=3Ddriver@entry=3D0x7fc9c005= 0980, vm=3D0x7fc9fc31f5e0 [virDomainObj], updatedCPU=3DupdatedCPU@entry=3D0= x0, asyncJob=3DasyncJob@entry=3DQEMU_ASYNC_JOB_START, migrateFrom=3Dmigrate= From@entry=3D0x0, migrateFd=3D-1, migratePath=3D0x0, snapshot=3D0x0, vmop= =3DVIR_NETDE--Type for more, q to quit, c to continue without paging-- V_VPORT_PROFILE_OP_CREATE, flags=3D) at ../src/qemu/qemu_pro= cess.c:7855 #13 0x00007fca083b3e10 in qemuDomainCreateXML (conn=3D0x7fc9c0013190, xml= =3D, flags=3D0) at ../src/qemu/qemu_driver.c:1628 #14 0x00007fca133e46f0 in virDomainCreateXML (conn=3D0x7fc9c0013190, xmlDesc=3D0x7fca00008760 "\n centos7\n 9a5410a8-7e14-4d6e-8997-3222b4011518\n \n \n "..., flags=3D0) at ../src/libvirt-domain.c:180 #15 0x0000564bb33d631f in remoteDispatchDomainCreateXML (server=3D0x564bb3dd1880 [virNetServer], msg=3D0x564bb3e81620, ret=3D0x= 7fca0000bfa0, args=3D0x7fca00002510, rerr=3D0x7fca0b7fd9a0, client=3D0x564b= b3e80030 [virNetServerClient]) at src/remote/remote_daemon_dispatch_stubs.h= :5083 #16 remoteDispatchDomainCreateXMLHelper (server=3D0x564bb3dd1880 [virNetServer], client=3D0x564bb3e80030 [virNe= tServerClient], msg=3D0x564bb3e81620, rerr=3D0x7fca0b7fd9a0, args=3D0x7fca0= 0002510, ret=3D0x7fca0000bfa0) at src/remote/remote_daemon_dispatch_stubs.h= :5064 #17 0x00007fca13374426 in virNetServerProgramDispatchCall (msg=3D0x564bb3e81620, client=3D0x564bb3e80030 [virNetServerClient], se= rver=3D0x564bb3dd1880 [virNetServer], prog=3D0x564bb3e3c010 [virNetServerPr= ogram]) at ../src/rpc/virnetserverprogram.c:428 #18 virNetServerProgramDispatch (prog=3D0x564bb3e3c010 [virNetServerProgram], server=3Dserver@entry=3D0= x564bb3dd1880 [virNetServer], client=3D0x564bb3e80030 [virNetServerClient],= msg=3D0x564bb3e81620) at ../src/rpc/virnetserverprogram.c:302 #19 0x00007fca133796d4 in virNetServerProcessMsg (msg=3D, prog=3D, client=3D, srv=3D0x564bb3dd1880 [virNetServer]) at ../src/rpc/virnetserver.c:140 #20 virNetServerHandleJob (jobOpaque=3D0x564bb3e7fd50, opaque=3D0x564bb3dd1= 880) at ../src/rpc/virnetserver.c:160 #21 0x00007fca132b8eaf in virThreadPoolWorker (opaque=3D) at= ../src/util/virthreadpool.c:164 #22 0x00007fca132b84f5 in virThreadHelper (data=3D) at ../sr= c/util/virthread.c:256 #23 0x00007fca12c362ba in start_thread (arg=3D) at pthread_c= reate.c:442 #24 0x00007fca12cc0460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/cl= one3.S:81 ---- In order to work around the problem this is the hack I used (to get things = to work), but clearly it is no solution: diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 5df48af60c..e22d3cb5c5 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -3616,7 +3616,7 @@ virNetDevGenerateName(char **ifname, virNetDevGenName= Type type) g_autofree char *try =3D NULL; int id =3D 0; =20 - VIR_WITH_OBJECT_LOCK_GUARD(&virNetDevGenNames[type].mutex) { + /* VIR_WITH_OBJECT_LOCK_GUARD(&virNetDevGenNames[type].mutex) */ { id =3D ++virNetDevGenNames[type].lastID; =20 /* reset before overflow */ ---- With this applied things run fine for me, install is successful and domain = is functional. Ciao, Claudio --=20 Claudio Fontana Engineering Manager Virtualization, SUSE Labs Core SUSE Software Solutions Italy Srl