Bug 1487322
| Summary: | Deadlock on dmn object since ace45e67 | ||
|---|---|---|---|
| Product: | [Community] Virtualization Tools | Reporter: | Christian Ehrhardt <paelzer> |
| Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | unspecified | CC: | libvirt-maint, mprivozn, rbalakri |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-3.7.0 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-09-01 11:34:07 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
Christian Ehrhardt
2017-08-31 15:43:25 UTC
There is a suggested patch we will use as hot,fix but wait for a proper discussion/solution to be picked up eventually. See: https://launchpadlibrarian.net/335315545/avoid-double-locking.patch Hmm that is actually just the "partial revert" hotfix, the suggestion I actually meant is at http://paste.ubuntu.com/25439049/ I've proposed patch on the upstream list: https://www.redhat.com/archives/libvir-list/2017-September/msg00015.html Change builds fine and seems to fix the issue. Survived 20 minutes in my stress loop, which it never did before. And I've pushed the patch:
commit 054c6d27214ef90feab3897b052f450492d5ef3f
Author: Michal Privoznik <mprivozn>
AuthorDate: Fri Sep 1 10:33:12 2017 +0200
Commit: Michal Privoznik <mprivozn>
CommitDate: Fri Sep 1 13:21:33 2017 +0200
virnetdaemon: Don't deadlock when talking to D-Bus
https://bugzilla.redhat.com/show_bug.cgi?id=1487322
In ace45e67abbd I tried to fix a problem that we get the reply to
a D-Bus call while we were sleeping. In that case the callback
was never set. So I changed the code that the callback is called
directly in this case. However, I hadn't realized that since the
callback is called out of order it locks the virNetDaemon.
Exactly the very same virNetDaemon object that we are dealing
with right now and that we have locked already (in
virNetDaemonAddShutdownInhibition())
Signed-off-by: Michal Privoznik <mprivozn>
v3.7.0-rc2-5-g054c6d272
|