Actions
Bug #877
closedQemu refuses to start with multiple RBD disks
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
Actions