Bug 892079
| Summary: | Libvirtd crash when destroyed the windows guest which was excuting s3/s4 operation | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | zhenfeng wang <zhwang> | ||||
| Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 6.4 | CC: | acathrow, bili, cwei, dallan, dyuan, gsun, hateya, jlibosva, lsu, mzhan, pkrempa, tlavigne, ydu | ||||
| Target Milestone: | rc | Keywords: | TestBlocker, ZStream | ||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | libvirt-0.10.2-19.el6 | Doc Type: | Bug Fix | ||||
| Doc Text: |
Previously, libvirtd was unable to execute an s3/s4 operation for a Microsoft Windows guest which ran the guest agent service. Consequently, this resulted in a "domain s4 fail" error message, due to the domain being destroyed. With this update, the guest is destroyed successfully and the libvirtd service no longer crashes.
|
Story Points: | --- | ||||
| Clone Of: | 890648 | Environment: | |||||
| Last Closed: | 2013-11-21 08:36:27 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: | |||||||
| Bug Depends On: | 890648, 1080376 | ||||||
| Bug Blocks: | 896690, 915344 | ||||||
| Attachments: |
|
||||||
|
Comment 2
zhenfeng wang
2013-01-05 06:44:05 UTC
Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2013-January/msg00520.html Moving to POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2013-January/msg00175.html Created attachment 682311 [details]
libvirtd crash log
crash log attached. I can also still reproduce this bug with libvirt-0.10.2-16.el6.x86_64. Okay guys, I've created a scratch build before claiming I fixed this: https://brewweb.devel.redhat.com/taskinfo?taskID=5298609 Can you please give it a try? Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2013-January/msg01487.html Since this is targeted for 6.5 now, and I've just pushed the patch upstream, I am moving this one to POST:
commit d960d06fc06a448f495c465caf06d3d0c74ea587
Author: Michal Privoznik <mprivozn>
AuthorDate: Mon Jan 21 11:52:44 2013 +0100
Commit: Michal Privoznik <mprivozn>
CommitDate: Wed Jan 23 15:35:44 2013 +0100
qemu_agent: Ignore expected EOFs
https://bugzilla.redhat.com/show_bug.cgi?id=892079
One of my previous patches (f2a4e5f176c408) tried to fix crashing
libvirtd on domain detroy. However, we need to copy pattern from
qemuProcessHandleMonitorEOF() instead of decrementing reference
counter. The rationale for this is, if qemu process is dying due
to domain being destroyed, we obtain EOF on both the monitor and
agent sockets. However, if the exit is expected, qemuProcessStop
is called, which cleans both agent and monitor sockets up. We
want qemuAgentClose() to be called iff the EOF is not expected,
so we don't leak an FD and memory. Moreover, there could be race
with qemuProcessHandleMonitorEOF() which could have already
closed the agent socket, in which case we don't want to do
anything.
v1.0.1-401-gd960d06
*** Bug 915653 has been marked as a duplicate of this bug. *** Marking with TestBlocker since it fails our Jenkins Jobs testing RHEV (In reply to comment #19) > Marking with TestBlocker since it fails our Jenkins Jobs testing RHEV Fair enough, thank you for the explanation of what's failing. Verify this bug on libvirt-0.10.2-21.el6.x86_64, the following was my verification steps pkg info kernel-2.6.32-396.el6.x86_64 libvirt-0.10.2-21.el6.x86_64 qemu-kvm-rhev-0.12.1.2-2.386.el6.x86_64 virtio-win-1.6.5-6.el6_4.noarch steps 1. prepare the test environment as step1 and step2 in coment 0 2 Excute the s3 in the host, quit the command before it was finshed # virsh dompmsuspend win7 --target mem ^C 3 Excute the s4 in the host ,quit the command before it was finished # virsh dompmsuspend win7 --target disk ^C 4 Then destroy the guest in the host # virsh destroy win7 Domain win7 destroyed 5.check the libvirtd status # ps aux|grep libvirtd root 5251 0.0 0.0 103244 836 pts/0 S+ 18:13 0:00 grep libvirtd root 30067 1.7 0.1 1027604 15896 ? Sl 16:18 1:58 libvirtd --daemon # service libvirtd status libvirtd (pid 30067) is running... since the libvirtd was not crashed, also i can reproduce this bug in libvirt-0.10.2-13.el6.x86_64, so mark this bug verified 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-2013-1581.html |