Bug 969497

Summary: Segmentation Violation on KVM + virsh domain destroy while console connected
Product: [Community] Virtualization Tools Reporter: Chris Carpenter <mordocai>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: dallan, dyasny, jesse.j.cook
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Debian wheezy x86_64
Last Closed: 2013-06-01 09:20:44 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:
Attachments:
Description Flags
Comment none

Description Chris Carpenter 2013-05-31 14:49:22 UTC
Created attachment 915720 [details]
Comment

(This comment was longer than 65,535 characters and has been moved to an attachment by Red Hat Bugzilla).

Comment 1 Chris Carpenter 2013-05-31 14:51:21 UTC
Sorry, forgot to say in original bug report that this is using KVM

Comment 2 Peter Krempa 2013-06-01 09:20:44 UTC
Hi Chris,

This is a known issue in the console code that was introduced by commit:

commit 4716138229ae47c5492c13a8622b779889560fd7
Author: Peter Krempa <pkrempa>
Date:   Thu Oct 6 12:24:47 2011 +0200

    qemu: Add ability to abort existing console while creating new one
    
    This patch fixes console corruption, that happens if two concurrent
    sessions are opened for a single console on a domain. Result of this
    corruption was that each of the console streams recieved just a part
    of the data written to the pipe so every console rendered unusable.

in libvirt 0.9.11. The problem was later fixed by commit:

commit 45edefc7a7bcbec988f54331ff37fc32e4bc2718
Author: Peter Krempa <pkrempa>
Date:   Fri Aug 3 11:20:29 2012 +0200

    conf: Remove console stream callback only when freeing console helper
    
    Commit ba226d334acbc49f6751b430e0c4e00f69eef6bf tried to fix crash of
    the daemon when a domain with an open console was destroyed. The fix was
    wrong as it tried to remove the callback also when the stream was
    aborted, where at that point the fd stream driver was already freed and
    removed.

This commit is included in the libvirt-0.10.0 upstream release. Please upgrade at to least this version or let the maintainer of your distro include the patches pointed out in the downstream release.