Bug 880919 - Libvirtd crashed while saving the guest to a nonexistent directory
Summary: Libvirtd crashed while saving the guest to a nonexistent directory
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt
Version: 6.4
Hardware: x86_64
OS: Linux
Target Milestone: rc
: ---
Assignee: Ján Tomko
QA Contact: Virtualization Bugs
: 893814 (view as bug list)
Depends On:
Blocks: 785929 886216
TreeView+ depends on / blocked
Reported: 2012-11-28 07:30 UTC by zhenfeng wang
Modified: 2013-02-21 07:27 UTC (History)
10 users (show)

Fixed In Version: libvirt-0.10.2-11.el6
Doc Type: Bug Fix
Doc Text:
Cause: virFileWrapperFdCatchError was called with a NULL argument when the save file could not be opened. Consequence: Libvirtd would crash due to NULL pointer dereference. Fix: Only call virFileWrapperFdCatchError if the file was opened. Result: An error is reported instead of crashing.
Clone Of:
Last Closed: 2013-02-21 07:27:49 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:0276 0 normal SHIPPED_LIVE Moderate: libvirt security, bug fix, and enhancement update 2013-02-20 21:18:26 UTC

Description zhenfeng wang 2012-11-28 07:30:46 UTC
Description of problem:
Libvirtd crashed while save the guest to an unexsited directory
Version-Release number of selected component (if applicable):

How reproducible:
1 Prepare a running guest
# virsh list
 Id    Name                           State
 1     rhelqcow2                      running

2 Save the guest to an unexsited derectory
# virsh save rhelqcow2 /unexsited/rhel.save
error: Failed to save domain rhelqcow2 to /unexsited/rhel.save
error: End of file while reading data: Input/output error
error: Failed to reconnect to the hypervisor

Actual results:
The libvirtd crashed

Expected results:
The guest will fail to save, however, the libvirtd should still run normally.

Comment 2 zhenfeng wang 2012-11-28 08:01:45 UTC
Since it works well in pkg libvirt-0.9.10-21.el6.x86_64 ,so mark it as a regression bug 

in pkg libvirt-0.9.10-21.el6.x86_64
# virsh save rhelqcow2 /unexsited/rhel.save
error: Failed to save domain testfull to /unexsited/rhel.save
error: Failed to create file '/unexsited/rhel.save': Operation not permitted

Comment 4 Ján Tomko 2012-11-28 08:15:10 UTC
Upstream patch proposed:

Comment 5 Ján Tomko 2012-11-28 09:42:53 UTC
Fixed upstream:
commit 8927c0eab6681ee4ae014cb37fe60b42c225b8df
Author:     Ján Tomko <jtomko@redhat.com>
AuthorDate: 2012-11-28 09:08:52 +0100
Commit:     Martin Kletzander <mkletzan@redhat.com>
CommitDate: 2012-11-28 10:24:31 +0100

    qemu: fix a crash when save file can't be opened

Posted downstream:

Comment 7 EricLee 2012-12-07 05:22:26 UTC
Verified with libvirt-0.10.2-11.el6.x86_64:

# virsh start r6u3
Domain r6u3 started

# virsh save r6u3 /unexsited/r6u3.save
error: Failed to save domain r6u3 to /unexsited/r6u3.save
error: Failed to create file '/unexsited/r6u3.save': Operation not permitted

And libvirtd does not crash:
# virsh list --all
 Id    Name                           State
 3     r6u3                           running

# service libvirtd status
libvirtd (pid  11853) is running...

Get the expected result, so moving to VERIFIED.

Comment 8 Peter Krempa 2013-01-10 10:26:17 UTC
*** Bug 893814 has been marked as a duplicate of this bug. ***

Comment 9 errata-xmlrpc 2013-02-21 07:27:49 UTC
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.


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