Bug 796118
Summary: | qemu hits core dump when boot guest with 2 pass-though usb devices under 1.1 controller | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | juzhang <juzhang> |
Component: | qemu-kvm | Assignee: | Gerd Hoffmann <kraxel> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 6.3 | CC: | acathrow, bsarathy, lyarwood, michen, minovotn, mkenneth, rdassen, shu, sluo, tburke, virt-maint, xfu, zhpeng |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-0.12.1.2-2.253.el6 | Doc Type: | Bug Fix |
Doc Text: |
Cause: qemu usb emulation core modified data structures after releasing them.
Consequence: assert() can trigger due to unexpected data structure changes and qemu dumps core.
Fix: move release call to correct place.
Resolution: core dumps are gone.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2012-06-20 11:43:46 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
juzhang
2012-02-22 10:55:29 UTC
Reproduces, good, hopefully makes it easy to pin down. Yes, the controllers are supported, piix3-usb-uhci is the default 1.1 usb controller, piix4-usb-uhci is identical with just different pci ids (piix4 chipset ones instead of piix3 chipset). Patch posted. I try to reproduce this on qemu 250 with two usb stick: At beginning this can not be reproduced with steps in comment0, after looking into code, this bug only happens when there is deferred USB packet handling, to trigger this: 1. [root@shu ~]# ls -il /dev/sd* 6199 brw-rw----. 1 root disk 8, 0 Mar 20 22:01 /dev/sda 6200 brw-rw----. 1 root disk 8, 1 Mar 20 22:01 /dev/sda1 6201 brw-rw----. 1 root disk 8, 2 Mar 20 22:01 /dev/sda2 320354 brw-rw----. 1 root disk 8, 112 Mar 20 22:50 /dev/sdh 320520 brw-rw----. 1 root disk 8, 113 Mar 20 22:50 /dev/sdh1 320478 brw-rw----. 1 root disk 8, 128 Mar 20 22:50 /dev/sdi 320613 brw-rw----. 1 root disk 8, 129 Mar 20 22:50 /dev/sdi1 2. [root@shu ~]# while true; do dd if=/dev/zero of=/dev/sdh1 bs=1K count=1 & dd if=/dev/zero of=/dev/sdi1 bs=1K count=1 & done 3. then run qemu-kvm with "-device usb-host,hostbus=1,hostaddr=4,id=hostdev0 -device usb-host,hostbus=1,hostaddr=5,id=hostdev1" Test the scratch build qemu-kvm-0.12.1.2-2.249.el6.bz796118.1.x86_64, this problem has gone. *** Bug 806755 has been marked as a duplicate of this bug. *** Verified on 267 with steps in comment 6, before patch can reproduce the bug in a chance of 70%, with 267, try 10 ten times, do not hit the problem, verified. *** Bug 807517 has been marked as a duplicate of this bug. *** *** Bug 807102 has been marked as a duplicate of this bug. *** *** Bug 803528 has been marked as a duplicate of this bug. *** Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: NEEDINFO Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1 +1,7 @@ -NEEDINFO+Cause: qemu usb emulation core modified data structures after releasing them. + +Consequence: assert() can trigger due to unexpected data structure changes and qemu dumps core. + +Fix: move release call to correct place. + +Resolution: core dumps are gone. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0746.html |