Bug 1209813
| Summary: | libvirtd crashes after memory device hot-plug crashes qemu | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Luyao Huang <lhuang> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 7.2 | CC: | dyuan, honzhang, mzhan, pkrempa, rbalakri, shyu |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.2.15-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-11-19 06:27:30 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Luyao Huang
2015-04-08 09:23:30 UTC
Fixed upstream:
commit c44108522bea406a0e1a726807a687f313687a42
Author: Peter Krempa <pkrempa>
Date: Tue Apr 14 17:52:48 2015 +0200
qemu: monitor: Refactor and fix monitor checking
Among all the monitor APIs some where checking if mon is NULL and some
were not. Since it's possible to have mon equal to NULL in case a second
call is attempted once entered the monitor. This requires that every
single API checks for the monitor.
This patch adds a macro that helps checking the state of the monitor and
either refactors existing checking code to use the macro or adds it in
case it was missing.
v1.2.14-200-gc441085
Verify this bug with libvirt-1.2.16-1.el7.x86_64 and qemu-kvm-rhev-2.2.0-8.el7.x86_64:
1.
# virsh dumpxml r6
<maxMemory slots='16' unit='KiB'>1524288</maxMemory>
<memory unit='KiB'>1024000</memory>
<currentMemory unit='KiB'>1024000</currentMemory>
<cpu>
<numa>
<cell id='0' cpus='0' memory='512000' unit='KiB'/>
<cell id='1' cpus='1-2' memory='512000' unit='KiB'/>
</numa>
</cpu>
2. start it :
# virsh start r6
Domain r6 started
3. attach memory device:
# virsh attach-device r6 memdevice.xml
error: Failed to attach device from memdevice.xml
error: Unable to read from monitor: Connection reset by peer
4. repeat step 2 and 3 1000 times, no libvirtd crashed, and we can find log in libvirtd.log:
2015-07-07 07:40:21.645+0000: 32479: error : qemuMonitorIORead:606 : Unable to read from monitor: Connection reset by peer
2015-07-07 07:40:21.646+0000: 32480: error : qemuMonitorDelObject:3005 : invalid argument: monitor must not be NULL
2015-07-07 07:45:09.856+0000: 32479: error : qemuMonitorIORead:606 : Unable to read from monitor: Connection reset by peer
2015-07-07 07:45:13.288+0000: 32479: error : qemuMonitorIORead:606 : Unable to read from monitor: Connection reset by peer
2015-07-07 07:45:13.290+0000: 32484: error : qemuMonitorDelObject:3005 : invalid argument: monitor must not be NULL
2015-07-07 07:45:16.301+0000: 32479: error : qemuMonitorIORead:606 : Unable to read from monitor: Connection reset by peer
2015-07-07 07:45:16.302+0000: 32483: error : qemuMonitorDelObject:3005 : invalid argument: monitor must not be NULL
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. https://rhn.redhat.com/errata/RHBA-2015-2202.html |