Bug 892901
| Summary: | Concurrency/locking causes segfault | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Michal Privoznik <mprivozn> | |
| Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> | |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> | |
| Severity: | medium | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 7.1 | CC: | acathrow, cwei, dallan, dyuan, honzhang, mzhan, ssullivan, ydu | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | x86_64 | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | libvirt-1.0.2-1.el7 | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | 892649 | |||
| : | 903238 (view as bug list) | Environment: | ||
| Last Closed: | 2014-06-13 11:29:28 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: | 892649 | |||
| Bug Blocks: | 903238 | |||
|
Description
Michal Privoznik
2013-01-08 08:03:01 UTC
As the original reporter of this bug, I can say for me at least this issue was fixed with this commit: http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=81621f3e6e45e8681cc18ae49404736a0e772a11 (In reply to comment #1) > As the original reporter of this bug, I can say for me at least this issue > was fixed with this commit: > > http://libvirt.org/git/?p=libvirt.git;a=commitdiff; > h=81621f3e6e45e8681cc18ae49404736a0e772a11 Many thanks for reporting that datapoint, that's extremely helpful. Moving to POST:
commit 81621f3e6e45e8681cc18ae49404736a0e772a11
Author: Daniel P. Berrange <berrange>
AuthorDate: Fri Jan 18 14:33:51 2013 +0000
Commit: Daniel P. Berrange <berrange>
CommitDate: Fri Jan 18 15:45:38 2013 +0000
Fix race condition when destroying guests
When running virDomainDestroy, we need to make sure that no other
background thread cleans up the domain while we're doing our work.
This can happen if we release the domain object while in the
middle of work, because the monitor might detect EOF in this window.
For this reason we have a 'beingDestroyed' flag to stop the monitor
from doing its normal cleanup. Unfortunately this flag was only
being used to protect qemuDomainBeginJob, and not qemuProcessKill
This left open a race condition where either libvirtd could crash,
or alternatively report bogus error messages about the domain already
having been destroyed to the caller
Signed-off-by: Daniel P. Berrange <berrange>
v1.0.1-349-g81621f3
Reproduce this bug with libvirt-1.0.1-1.el7.x86_64, when repeat create/destroy guests, it will lead to libvirtd crash: #systemctl status libvirtd.service libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) Active: failed (Result: core-dump) since Tue, 2013-02-05 14:32:10 CST; 50s ago Process: 4049 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=dumped, signal=SEGV) CGroup: name=systemd:/system/libvirtd.service └ 2886 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.265+00004050: debug : virObjectUnref:135 : OBJECT_UNREF: obj=0x7f794418be70 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.265+00004050: debug : virObjectUnref:137 : OBJECT_DISPOSE: obj=0x7f794418be70 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004050: debug : qemuDomainObjEndJob:936 : Stopping job: modify (async=none) Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004050: debug : virObjectUnref:135 : OBJECT_UNREF: obj=0x7f7944118650 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004050: debug : virObjectUnref:135 : OBJECT_UNREF: obj=0x7f7944118650 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004050: debug : virObjectUnref:135 : OBJECT_UNREF: obj=0x7f79440373a0 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004054: debug : virObjectUnref:135 : OBJECT_UNREF: obj=0x7f7944118650 Feb 05 14:32:10 localhost.localdomain libvirtd[4049]: 2013-02-05 06:32:10.266+00004054: debug : virObjectUnref:137 : OBJECT_DISPOSE: obj=0x7f7944118650 Feb 05 14:32:10 localhost.localdomain systemd[1]: libvirtd.service: main process exited, code=dumped, status=11/SEGV Feb 05 14:32:10 localhost.localdomain systemd[1]: Unit libvirtd.service entered failed state After update libvirt to libvirt-1.0.2-1.el7.x86_64, this bug can not reproduce anymore. So bug VERIFIED. 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. |