Bug 996831
Summary: | qemu-kvm segmentation fault while boot guest from glusterfs with wrong host name | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | mazhang <mazhang> | |
Component: | qemu-kvm | Assignee: | Ademar Reis <areis> | |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> | |
Severity: | medium | Docs Contact: | ||
Priority: | medium | |||
Version: | 7.0 | CC: | acathrow, areis, bsarathy, bturner, chayang, huding, juzhang, michen, mkenneth, mrezanin, qzhang, vbellur, virt-maint | |
Target Milestone: | rc | Keywords: | TestOnly | |
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | ||||
Fixed In Version: | Doc Type: | Bug Fix | ||
Doc Text: | Story Points: | --- | ||
Clone Of: | 996829 | |||
: | 998778 (view as bug list) | Environment: | ||
Last Closed: | 2014-06-13 10:26:10 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
mazhang
2013-08-14 05:45:50 UTC
Reproduced. This affects upstream qemu as well. In block/gluster.c qemu_gluster_init { ret = glfs_init(glfs); if (ret) { ... goto out; } return glfs; out: if (glfs) { old_errno = errno; glfs_fini(glfs); errno = old_errno; } return NULL; } glfs_init does not setup errno. So even if glfs_init fails errno is set to 0. In block/gluster.c, we will return 0 when qemu_gluster_init fails. qemu_gluster_open { s->glfs = qemu_gluster_init(gconf, filename); if (!s->glfs) { ret = -errno; goto out; } } ------------------------------------------- /* SYNOPSIS glfs_init: Initialize the 'virtual mount' DESCRIPTION This function initializes the glfs_t object. This consists of many steps: - Spawn a poll-loop thread. - Establish connection to management daemon and receive volume specification. - Construct translator graph and initialize graph. - Wait for initialization (connecting to all bricks) to complete. PARAMETERS @fs: The 'virtual mount' object to be initialized. RETURN VALUES 0 : Success. -1 : Failure. @errno will be set with the type of failure. */ Patch posted in: https://bugzilla.redhat.com/show_bug.cgi?id=998778#c3 Asias believes no code changes are needed now that the glusterfs bug has been fixed. Please test. (In reply to Ademar Reis from comment #5) > Asias believes no code changes are needed now that the glusterfs bug has > been fixed. Please test. Glusterfs bug has been fixed, qemu-kvm no code changes. Installed the latest package and test this bug. Host: qemu-kvm-tools-1.5.3-39.el7.x86_64 ipxe-roms-qemu-20130517-1.gitc4bce43.el7.noarch qemu-kvm-common-1.5.3-39.el7.x86_64 qemu-kvm-1.5.3-39.el7.x86_64 qemu-kvm-debuginfo-1.5.3-39.el7.x86_64 qemu-img-1.5.3-39.el7.x86_64 glusterfs-api-3.4.0.51rhs-1.el7.x86_64 glusterfs-libs-3.4.0.51rhs-1.el7.x86_64 glusterfs-fuse-3.4.0.51rhs-1.el7.x86_64 glusterfs-3.4.0.51rhs-1.el7.x86_64 Steps: Start qemu-kvm with: -drive file=gluster://gluster/gv0/rhel7-64-bak.raw,if=none,id=drive-ide0-0-1,format=raw,cache=none,aio=threads \ -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=0 \ Result: Qemu-kvm quit with warning, no crash found. qemu-kvm: -drive file=gluster://gluster/gv0/rhel7-64-bak.raw,if=none,id=drive-ide0-0-1,format=raw,cache=none,aio=threads: Gluster connection failed for server=gluster port=0 volume=gv0 image=rhel7-64-bak.raw transport=tcp qemu-kvm: -drive file=gluster://gluster/gv0/rhel7-64-bak.raw,if=none,id=drive-ide0-0-1,format=raw,cache=none,aio=threads: could not open disk image gluster://gluster/gv0/rhel7-64-bak.raw: Could not open 'glusterfs:data_pair_t': Transport endpoint is not connected This bug has been fixed. This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |