[libvirt] Cannot use console with 0.7.5, error: internal error no assigned pty for device serial0

[my apologies for this re-post. I stupidly managed to hide the first instance of this mail away in an unrelated patch-thread and am thus afraid that the people who could have answered didn't see it] Hi, I have one test host running Debian unstable (kernel 2.6.32.3), and I would like to virtualize on it using KVM and virsh. Debian unstable has libvirt 0.7.5. On this host, I cannot start any KVM domain using console with these XML parts: <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> When I try virsh start $domain, I get the error message: error: internal error no assigned pty for device serial0 When I remove the serial and console stanza, the machine starts up. This is the configuration documented everywhere. At first, I suspected a change in the configuration syntax and filed Debian bug #565145, But on the #virt IRC channel, people suggested that there was a change in libvirt parsing KVM's output, which may be a genuine bug breaking the console. Is this already a known issue? Can I do anything to help debugging? Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

On 15/01/10 09:18, Marc Haber wrote:
[my apologies for this re-post. I stupidly managed to hide the first instance of this mail away in an unrelated patch-thread and am thus afraid that the people who could have answered didn't see it]
Hi,
I have one test host running Debian unstable (kernel 2.6.32.3), and I would like to virtualize on it using KVM and virsh. Debian unstable has libvirt 0.7.5.
On this host, I cannot start any KVM domain using console with these XML parts:
<serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console>
When I try virsh start $domain, I get the error message:
error: internal error no assigned pty for device serial0
When I remove the serial and console stanza, the machine starts up. This is the configuration documented everywhere. At first, I suspected a change in the configuration syntax and filed Debian bug #565145, But on the #virt IRC channel, people suggested that there was a change in libvirt parsing KVM's output, which may be a genuine bug breaking the console.
Is this already a known issue? Can I do anything to help debugging?
Hi, Marc, Could you please post the full domain XML, and the QEMU command line it generated? You can get the latter from /var/log/libvirt/qemu/<domain>.log. Can you also post the versions of qemu and libvirt? This should let me see where it's going wrong. Thanks, Matt -- Matthew Booth, RHCA, RHCSS Red Hat Engineering, Virtualisation Team M: +44 (0)7977 267231 GPG ID: D33C3490 GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490

Hi, On Fri, Jan 15, 2010 at 11:43:26AM +0000, Matthew Booth wrote:
Could you please post the full domain XML, and the QEMU command line it generated? You can get the latter from /var/log/libvirt/qemu/<domain>.log. Can you also post the versions of qemu and libvirt?
$ cat /etc/libvirt/qemu/grml-test.xml <domain type='kvm'> <name>grml-test</name> <uuid>ce24153b-b997-0f04-6fd1-ac06cfb780a7</uuid> <memory>262144</memory> <currentMemory>262144</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='pc'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <source file='/dev/mapper/usb160g-grml--test'/> <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <mac address='52:54:00:39:d8:4b'/> <source bridge='br0'/> <model type='virtio'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='de'/> <video> <model type='cirrus' vram='9216' heads='1'/> </video> </devices> </domain> $ sudo tail /var/log/libvirt/qemu/grml-test.log LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc -m 256 -smp 1 -name grml-test -monitor unix:/var/lib/libvirt/qemu/grml-test.monitor,server,nowait -no-reboot -boot c -drive file=/dev/mapper/usb160g-grml--test,if=virtio,index=0,boot=on -net nic,macaddr=52:54:00:39:d8:4b,vlan=0,model=virtio -net tap,fd=39,vlan=0 -serial pty -parallel none -usb -vnc 127.0.0.1:0 -k de char device redirected to /dev/pts/3 $ dpkg --list *kvm* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kvm 72+dfsg-2 Full virtualization on x86 hardware $ dpkg --list *qemu* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii qemu 0.11.1-2 fast processor emulator ii qemu-system 0.11.1-2 QEMU full system emulation binaries ii qemu-user 0.11.1-2 QEMU user mode emulation binaries ii qemu-utils 0.11.1-2 QEMU utilities $ dpkg --list '*libvirt*' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii libvirt-bin 0.7.5-3 the programs for the libvirt library ii libvirt0 0.7.5-3 library for interfacing with different virtu ii python-libvirt 0.7.5-3 libvirt Python bindings $ I am not sure whether the qemu listed above is actually used by the kvm binary. If you need additional information, please ask. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

On Fri, Jan 15, 2010 at 03:13:25PM +0100, Marc Haber wrote:
Hi,
On Fri, Jan 15, 2010 at 11:43:26AM +0000, Matthew Booth wrote:
Could you please post the full domain XML, and the QEMU command line it generated? You can get the latter from /var/log/libvirt/qemu/<domain>.log. Can you also post the versions of qemu and libvirt?
$ cat /etc/libvirt/qemu/grml-test.xml <domain type='kvm'> <name>grml-test</name> <uuid>ce24153b-b997-0f04-6fd1-ac06cfb780a7</uuid> <memory>262144</memory> <currentMemory>262144</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='pc'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <source file='/dev/mapper/usb160g-grml--test'/> <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <mac address='52:54:00:39:d8:4b'/> <source bridge='br0'/> <model type='virtio'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='de'/> <video> <model type='cirrus' vram='9216' heads='1'/> </video> </devices> </domain> $ sudo tail /var/log/libvirt/qemu/grml-test.log LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc -m 256 -smp 1 -name grml-test -monitor unix:/var/lib/libvirt/qemu/grml-test.monitor,server,nowait -no-reboot -boot c -drive file=/dev/mapper/usb160g-grml--test,if=virtio,index=0,boot=on -net nic,macaddr=52:54:00:39:d8:4b,vlan=0,model=virtio -net tap,fd=39,vlan=0 -serial pty -parallel none -usb -vnc 127.0.0.1:0 -k de
If I were a betting man, I'd bet on this changeset which was missed from the 0.7.5 release http://libvirt.org/git/?p=libvirt.git;a=commit;h=c0a9b6a5338e54b64a4a28415ff... Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

On Fri, Jan 15, 2010 at 02:29:09PM +0000, Daniel P. Berrange wrote:
If I were a betting man, I'd bet on this changeset which was missed from the 0.7.5 release
http://libvirt.org/git/?p=libvirt.git;a=commit;h=c0a9b6a5338e54b64a4a28415ff...
Took that patch, applied it to Debian's 0.7.5-4 source package, built the package, installed it, same error. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

On Fri, Jan 15, 2010 at 05:45:27PM +0100, Marc Haber wrote:
Took that patch, applied it to Debian's 0.7.5-4 source package, built the package, installed it, same error.
Looks to me like the issue is still present in git head. git clone ./autogen create debian/ to allow building the debian package rm debian/patches/series rm docs/Makefile.am touch docs/Makefile.am autoreconf debuild dpkg --install issue still present. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

Hi, On Fri, Jan 15, 2010 at 07:51:12PM +0100, Marc Haber wrote:
On Fri, Jan 15, 2010 at 05:45:27PM +0100, Marc Haber wrote:
Took that patch, applied it to Debian's 0.7.5-4 source package, built the package, installed it, same error.
Looks to me like the issue is still present in git head.
git bisect shows the first bad commit being 60e8977fdd97e0952174773f17f8fa6fca664223 Author: Matthew Booth <mbooth@redhat.com> Date: Mon Dec 14 10:50:01 2009 +0100 Get QEMU pty paths from the monitor This is not a big surprise ;) I'm going back to 0.7.4 for the mean time, but am prepared to test things over the weekend. I will only have intermittent access to a KVM-able host starting monday though, so it would be good if we sorted this out over the weekend. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

Hi, On Fri, Jan 15, 2010 at 03:13:25PM +0100, Marc Haber wrote:
$ dpkg --list *kvm* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kvm 72+dfsg-2 Full virtualization on x86 hardware
This turned out to be the problem, libvirt didn't handle KVM 72's output correctly. photron helped identifying this issue on IRC, which I really appreciate, and there is a patch available to fix libvirt 0.7.5 with old KVM again. The real issue was that Debian has renamed the kvm package to qemu-kvm, which I didn't notice, and continued using an ancient kvm version. qemu-kvm from Debian unstable works fine with libvirt 0.7.5. Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

On Sat, Jan 16, 2010 at 06:24:28PM +0100, Marc Haber wrote:
Hi,
On Fri, Jan 15, 2010 at 03:13:25PM +0100, Marc Haber wrote:
$ dpkg --list *kvm* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kvm 72+dfsg-2 Full virtualization on x86 hardware
This turned out to be the problem, libvirt didn't handle KVM 72's output correctly. photron helped identifying this issue on IRC, which I really appreciate, and there is a patch available to fix libvirt 0.7.5 with old KVM again. Can you point me to this patch? Libvirt should be able to run with kvm 72 too. -- Guido

2010/1/17 Guido Günther <agx@sigxcpu.org>:
On Sat, Jan 16, 2010 at 06:24:28PM +0100, Marc Haber wrote:
Hi,
On Fri, Jan 15, 2010 at 03:13:25PM +0100, Marc Haber wrote:
$ dpkg --list *kvm* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kvm 72+dfsg-2 Full virtualization on x86 hardware
This turned out to be the problem, libvirt didn't handle KVM 72's output correctly. photron helped identifying this issue on IRC, which I really appreciate, and there is a patch available to fix libvirt 0.7.5 with old KVM again. Can you point me to this patch? Libvirt should be able to run with kvm 72 too. -- Guido
See https://www.redhat.com/archives/libvir-list/2010-January/msg00470.html Matthias

On Sun, Jan 17, 2010 at 01:27:21PM +0100, Matthias Bolte wrote:
2010/1/17 Guido Günther <agx@sigxcpu.org>:
On Sat, Jan 16, 2010 at 06:24:28PM +0100, Marc Haber wrote:
Hi,
On Fri, Jan 15, 2010 at 03:13:25PM +0100, Marc Haber wrote:
$ dpkg --list *kvm* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kvm 72+dfsg-2 Full virtualization on x86 hardware
This turned out to be the problem, libvirt didn't handle KVM 72's output correctly. photron helped identifying this issue on IRC, which I really appreciate, and there is a patch available to fix libvirt 0.7.5 with old KVM again. Can you point me to this patch? Libvirt should be able to run with kvm 72 too. -- Guido
See https://www.redhat.com/archives/libvir-list/2010-January/msg00470.html Will be part of the next Debian package. Thanks! -- Guido
participants (5)
-
Daniel P. Berrange
-
Guido Günther
-
Marc Haber
-
Matthew Booth
-
Matthias Bolte