[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [resent] virt-manager connection fails with 'qemu unexpectedly closed the monitor'



On 12/21/20 6:15 AM, John Paul Adrian Glaubitz wrote:
(CC'ing a friend who's run into the problem as well)

Hi Laine!

On 12/20/20 7:37 PM, Laine Stump wrote:
The first step would be to look in /var/log/libvirt/qemu/$guestname.log.
If qemu is encountering some error, it should be logging a message there
before it exits. (unless the error is a segfault; in that case I guess
you'll need to look for a coredump. It will also list exactly the qemu
commandline that was used.

Except for some unrelated warnings, qemu does not emit any error message:
[...]


2020-12-21 11:10:37.580+0000: starting up libvirt version: 6.9.0, package: 1+b2 (amd64 / i386 Build Daemon (x86-ubc-01) <buildd_amd64-x86-ubc-01 buildd debian org> Mon, 07 Dec 2020 09:45:52 +0000), qemu version: 5.2.0Debian 1:5.2+dfsg-2, kernel: 5.9.0-5-amd64, hostname: z6.physik.fu-berlin.de

At least you're running pretty much up-to-date of both libvirt and qemu, so you won't have to suffer through someone saying "come back when you've updated your software!" :-)

(although I suppose it's possible you've run into some recent regression that I haven't heard of, and all the people who have heard of it aren't responding because they gone off on their Christmas holidays already).


LC_ALL=C \
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
HOME=/var/lib/libvirt/qemu/domain-1-windows7 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-1-windows7/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-1-windows7/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-1-windows7/.config \
QEMU_AUDIO_DRV=spice \
/usr/bin/qemu-system-x86_64 \
-name guest=windows7,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-1-windows7/master-key.aes \
-machine pc-q35-5.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off,memory-backend=pc.ram \
-cpu Broadwell-IBRS,vme=on,ss=on,vmx=on,pdcm=on,f16c=on,rdrand=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,abm=on,ibpb=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1fff \
-m 4096 \
-object memory-backend-ram,id=pc.ram,size=4294967296 \
-overcommit mem-lock=off \
-smp 2,sockets=2,cores=1,threads=1 \
-uuid bb32a4b5-7b2c-4ac2-9a65-8fd2bb9cdb86 \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=33,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-hpet \
-no-shutdown \
-global ICH9-LPC.disable_s3=1 \
-global ICH9-LPC.disable_s4=1 \
-boot strict=on \
-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 \
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 \
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 \
-device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 \
-device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x1d.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x1d \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x1d.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x1d.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.2,addr=0x0 \
-blockdev '{"driver":"file","filename":"/data/kvm/windows7.img","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-hd,bus=ide.0,drive=libvirt-1-format,id=sata0-0-0,bootindex=1 \
-netdev tap,fd=35,id=hostnet0 \
-device e1000e,netdev=hostnet0,id=net0,mac=52:54:00:4b:c5:26,bus=pci.1,addr=0x0 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 \
-device ich9-intel-hda,id=sound0,bus=pcie.0,addr=0x1b \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \
-chardev spicevmc,id=charredir0,name=usbredir \
-device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 \
-chardev spicevmc,id=charredir1,name=usbredir \
-device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 \
-device virtio-balloon-pci,id=balloon0,bus=pci.3,addr=0x0 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on

Maybe try running this command directly from the commandline (after removing the "-netdev tap" and "-device e1000e" lines, since they require pre-creation/opening of a tap device) and see if it stays up or dies. If it dies, then retry it removing more and more of the commandline options until it runs successfully (note that many of the options come in pairs - e.g. the "-device ich9-intel-hda" and "-device hda-duplex" lines must be removed together, similarly for the sets of "-chardev spicevmc" and "-device usb-redir"). If you can keep track, use a bisecting strategy to save time. Once you've narrowed it down to a single option, maybe it will be easier to diagnose.

A similar strategy you could use at the libvirt level would be to use "virsh define" (run as root) and give it the XML you captured as the definition. Then do the same thing - repeatedly try to "virsh start", and then when it fails, use "virsh edit" to remove some of the devices/options and try again.

Good luck!


char device redirected to /dev/pts/0 (label charserial0)
2020-12-21T11:10:37.974205Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48FH).vmx-exit-load-perf-global-ctrl [bit 12]
2020-12-21T11:10:37.974284Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(490H).vmx-entry-load-perf-global-ctrl [bit 13]
2020-12-21T11:10:37.976069Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48FH).vmx-exit-load-perf-global-ctrl [bit 12]
2020-12-21T11:10:37.976089Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(490H).vmx-entry-load-perf-global-ctrl [bit 13]

One suggestion I saw for avoiding these warnings is to set "host-passthrough" for the CPU model rather than "host-model". No idea if it works though.

2020-12-21 11:10:38.207+0000: shutting down, reason=failed

If the message there isn't illuminating enough and you come back here, it would be helpful
to "bring along" that qemu commandline (and any accompanying error) as well as the output
of "virsh dumpxml $guestname"

Since libvirt won't create the guest instance in the first place, dumping the XML of the config
like that won't work. However, it's possible to view the XML from the preview window in the
machine details:

<domain type="kvm">
   <name>windows7</name>
   <uuid>bb32a4b5-7b2c-4ac2-9a65-8fd2bb9cdb86</uuid>
   <metadata>
     <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0";>
       <libosinfo:os id="http://microsoft.com/win/7"/>
     </libosinfo:libosinfo>
   </metadata>
   <memory>4194304</memory>
   <currentMemory>4194304</currentMemory>
   <vcpu>2</vcpu>
   <os>
     <type arch="x86_64" machine="q35">hvm</type>
     <boot dev="hd"/>
   </os>
   <features>
     <acpi/>
     <apic/>
     <hyperv>
       <relaxed state="on"/>
       <vapic state="on"/>
       <spinlocks state="on" retries="8191"/>
     </hyperv>
     <vmport state="off"/>
   </features>
   <cpu mode="host-model"/>
   <clock offset="localtime">
     <timer name="rtc" tickpolicy="catchup"/>
     <timer name="pit" tickpolicy="delay"/>
     <timer name="hpet" present="no"/>
     <timer name="hypervclock" present="yes"/>
   </clock>
   <pm>
     <suspend-to-mem enabled="no"/>
     <suspend-to-disk enabled="no"/>
   </pm>
   <devices>
     <emulator>/usr/bin/qemu-system-x86_64</emulator>
     <disk type="file" device="disk">
       <driver name="qemu" type="raw"/>
       <source file="/data/kvm/windows7.img"/>
       <target dev="sda" bus="sata"/>
     </disk>
     <controller type="usb" model="ich9-ehci1"/>
     <controller type="usb" model="ich9-uhci1">
       <master startport="0"/>
     </controller>
     <controller type="usb" model="ich9-uhci2">
       <master startport="2"/>
     </controller>
     <controller type="usb" model="ich9-uhci3">
       <master startport="4"/>
     </controller>
     <interface type="network">
       <source network="default"/>
       <mac address="52:54:00:4b:c5:26"/>
       <model type="e1000e"/>
     </interface>
     <console type="pty"/>
     <channel type="spicevmc">
       <target type="virtio" name="com.redhat.spice.0"/>
     </channel>
     <input type="tablet" bus="usb"/>
     <graphics type="spice" port="-1" tlsPort="-1" autoport="yes"/>
     <sound model="ich9"/>
     <video>
       <model type="qxl"/>
     </video>
     <redirdev bus="usb" type="spicevmc"/>
     <redirdev bus="usb" type="spicevmc"/>
   </devices>
</domain>

Adrian



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]