Bug 616695 - [qemu] [rhel6] dead lock in qemu: /usr/libexec/qemu-kvm: corrupted double-linked list: 0x00007fa3300637f0 ***
[qemu] [rhel6] dead lock in qemu: /usr/libexec/qemu-kvm: corrupted double-lin...
Status: CLOSED WORKSFORME
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm (Show other bugs)
6.1
All Linux
low Severity high
: rc
: 6.2
Assigned To: Marcelo Tosatti
Virtualization Bugs
: RHELNAK
Depends On:
Blocks: 580953 682015
  Show dependency treegraph
 
Reported: 2010-07-21 04:30 EDT by Haim
Modified: 2014-01-12 19:46 EST (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-04-27 04:02:29 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Haim 2010-07-21 04:30:28 EDT
Description of problem:

hit a deadlock in qemu which caused by probably memory corruption; as seen in the following log. 

*** glibc detected *** /usr/libexec/qemu-kvm: corrupted double-linked list: 0x00007fa3300637f0 ***

attached also qemu command: 

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -S -M rhel6.0.0 -cpu qemu64,-svm -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name libvirt-rhel54-124 -uuid 31e431e2-aaf3-42af-b121-0c2ff9b2b227 -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/libvirt-rhel54-124.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=2010-6-20T2:24:30 -boot c -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x7 -drive file=/rhev/data-center/841af73a-d3bf-4bb8-9985-0603fdcf302e/aaac4a9b-ae1f-4e4b-9c71-d25eb10bc83f/images/ada6e83b-572c-4042-938f-82ac472384b9/3b84ff9a-a2d5-4e2c-a35e-049da8a1c4cc,if=none,id=drive-virtio-disk0,boot=on,format=qcow2,serial=42-938f-82ac472384b9,cache=none -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/rhev/data-center/841af73a-d3bf-4bb8-9985-0603fdcf302e/aaac4a9b-ae1f-4e4b-9c71-d25eb10bc83f/images/7b387531-0939-4309-b005-a12992ba141a/c40b94b9-a07a-497e-be3c-e6034ba8dab8,if=none,id=drive-virtio-disk1,format=qcow2,serial=09-b005-a12992ba141a,cache=none -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,id=virtio-disk1 -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=36 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:23:71:8f,bus=pci.0,addr=0x6 -chardev socket,id=channel0,path=/var/lib/libvirt/qemu/channels/libvirt-rhel54-124.org.linux-kvm.port.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=0,chardev=channel0,name=org.linux-kvm.port.0 -usb -device usb-tablet,id=input0 -vnc 0:13,password -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3

it's a bit problem to reproduce, it happened to me when I load server with 60 vms and then killed all of thier qemu process (using rhevm). 
it happened on 2 servers so far. 

showed it to gleb and he said its a qumu bug. 


(gdb) info threads
  2 Thread 0x7fa336b29710 (LWP 10784)  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
* 1 Thread 0x7fa33712e800 (LWP 10763)  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136


#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x0000003ceb609345 in _L_lock_868 () from /lib64/libpthread.so.0
#2  0x0000003ceb609217 in __pthread_mutex_lock (mutex=0x866c20) at pthread_mutex_lock.c:61
#3  0x0000000000427efe in kvm_mutex_lock () at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:2533
#4  0x000000000040af28 in main_loop_wait (timeout=1000) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:4058
#5  0x00000000004282aa in kvm_main_loop () at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:2133
#6  0x000000000040dfab in main_loop (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:4274
#7  main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:6421


versions: 

vdsm-4.9-10.el6.x86_64
qemu-kvm-0.12.1.2-2.96.el6.x86_64
libvirt-0.8.1-15.el6.x86_64
2.6.32-44.1.el6.x86_64 (kernel)


How reproducible: hard - try load 60 vms on server, and kill their qemu-process
Comment 1 Cao, Chen 2010-07-26 03:03:09 EDT
why 6.1 bug?

make it block rhel6kvmtier1,
we could remove the blocker if the bug is indeed against rhel6.1.
Comment 2 RHEL Product and Program Management 2010-07-26 03:17:37 EDT
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **
Comment 4 Marcelo Tosatti 2010-08-30 14:42:15 EDT
Please describe in more detail how you killed the vms.
Comment 5 Haim 2010-08-30 15:43:22 EDT
(In reply to comment #4)
> Please describe in more detail how you killed the vms.

you can do it either by kill qemu process with 'pkill qemu' or use vdsm 
and send stop command towards vm id (should behave the same). 

configuration (layers): 

-rhevm
-vdsm  
-libvirt
-qemu
Comment 6 Glauber Costa 2010-11-04 14:15:13 EDT
Is it kill as in SIGKILL or kill as in sending a SIGSTOP?
I am puzzled by your comment that says it is the same as stopping the machine.

If it is a SIGSTOP, then it raises in importance IMHO.

Note You need to log in before you can comment on or make changes to this bug.