Project

General

Profile

Actions

Bug #877

closed

Qemu refuses to start with multiple RBD disks

Added by Wido den Hollander about 13 years ago. Updated about 13 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
librados
Target version:
% Done:

0%

Source:
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When trying to start a VM with multiple RBD disks attached, this fails, I keep getting a "hunting for new mon"

root@client:~# /usr/bin/qemu-system-x86_64 -S -M pc-0.12 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name sdgoij -uuid 2e718c9f-7cd5-405e-91ed-d613a58dafdb -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/sdgoij.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=rbd:rbd/sdgoij,if=none,id=drive-virtio-disk0,boot=on,format=rbd,cache=writeback -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=rbd:rbd/sdgoij-data,if=none,id=drive-virtio-disk1,format=rbd -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,id=virtio-disk1 -drive file=rbd:rbd/sdgoij-swap,if=none,id=drive-virtio-disk2,format=rbd,cache=writeback -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk2,id=virtio-disk2 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 0.0.0.0:0 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7
char device redirected to /dev/pts/1
2011-03-11 16:02:47.805726 7ff2aa32c780 librados: starting msgr at :/0
2011-03-11 16:02:47.805763 7ff2aa32c780 librados: starting objecter
2011-03-11 16:02:47.805913 7ff2aa32c780 librados: setting wanted keys
2011-03-11 16:02:47.805934 7ff2aa32c780 librados: calling monclient init
2011-03-11 16:02:47.810456 7ff2aa32c780 librados: waiting for osdmap
2011-03-11 16:02:47.811167 7ff2aa32c780 librados: init done
2011-03-11 16:02:47.812791 7ff2aa32c780 librados: Objecter returned from read r=0
2011-03-11 16:02:47.812824 7ff2aa32c780 librados: Returned length 112 less than original length 4096
2011-03-11 16:02:47.834562 7ff2aa32c780 librados: starting msgr at :/0
2011-03-11 16:02:47.834589 7ff2aa32c780 librados: starting objecter
2011-03-11 16:02:47.834676 7ff2aa32c780 librados: setting wanted keys
2011-03-11 16:02:47.834696 7ff2aa32c780 librados: calling monclient init
2011-03-11 16:02:47.835632 7ff2a05bc700 monclient: hunting for new mon
2011-03-11 16:02:50.835770 7ff2a05bc700 monclient: hunting for new mon
2011-03-11 16:02:53.835870 7ff2a05bc700 monclient: hunting for new mon
2011-03-11 16:02:56.835952 7ff2a05bc700 monclient: hunting for new mon
2011-03-11 16:02:59.836077 7ff2a05bc700 monclient: hunting for new mon
^C
root@client:~#
This is a VM with 3 disks:
  • rbd:rbd/sdgoij
  • rbd:rbd/sdgoij-data
  • rbd:rbd/sdgoij-swap

When starting the VM with just 'rbd:rbd/sdgoij' it starts fine:

root@client:~# /usr/bin/qemu-system-x86_64 -S -M pc-0.12 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name sdgoij -uuid 2e718c9f-7cd5-405e-91ed-d613a58dafdb -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/sdgoij.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=rbd:rbd/sdgoij,if=none,id=drive-virtio-disk0,boot=on,format=rbd,cache=writeback -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 0.0.0.0:0 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7
char device redirected to /dev/pts/1
2011-03-11 16:03:15.685592 7fd3840e1780 librados: starting msgr at :/0
2011-03-11 16:03:15.685627 7fd3840e1780 librados: starting objecter
2011-03-11 16:03:15.685813 7fd3840e1780 librados: setting wanted keys
2011-03-11 16:03:15.685834 7fd3840e1780 librados: calling monclient init
2011-03-11 16:03:15.688455 7fd3840e1780 librados: waiting for osdmap
2011-03-11 16:03:15.690975 7fd3840e1780 librados: init done
2011-03-11 16:03:15.692661 7fd3840e1780 librados: Objecter returned from read r=0
2011-03-11 16:03:15.692693 7fd3840e1780 librados: Returned length 112 less than original length 4096
^C
root@client:~#

I've ran it through GDB and found:

(gdb) bt
#0  0x00007ffff4195a75 in raise () from /lib/libc.so.6
#1  0x00007ffff41995c0 in abort () from /lib/libc.so.6
#2  0x00007ffff36588e5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#3  0x00007ffff3656d16 in ?? () from /usr/lib/libstdc++.so.6
#4  0x00007ffff3656d43 in std::terminate() () from /usr/lib/libstdc++.so.6
#5  0x00007ffff3656e3e in __cxa_throw () from /usr/lib/libstdc++.so.6
#6  0x00007ffff7311737 in ceph::__ceph_assert_fail (assertion=<value optimized out>, file=<value optimized out>, line=<value optimized out>, func=<value optimized out>) at common/assert.cc:86
#7  0x00007ffff727025b in Thread::join (this=0x7fffe800cbc0, prval=<value optimized out>) at ./common/Thread.h:99
#8  0x00007ffff7282747 in SimpleMessenger::wait (this=0x7fffe800c790) at msg/SimpleMessenger.cc:2719
#9  0x00007ffff7253fd0 in librados::RadosClient::shutdown (this=0x7fffe8009640) at librados.cc:611
#10 0x00007ffff72540b9 in rados_shutdown (cluster=0x4f64) at librados.cc:2639
...
...

It seems not to be a Qemu nor librbd issue, but librados.

My Ceph version: 67b6187590a9e7876cb9e5aad67cac7032e46752


Files

sdgoij.xml (1.56 KB) sdgoij.xml libvirt configuration Wido den Hollander, 03/11/2011 07:12 AM
Actions

Also available in: Atom PDF