Bug 21758 - Mehrfacher Crash von libvirtd mit kvm, PID-File nicht aufgeräumt
Mehrfacher Crash von libvirtd mit kvm, PID-File nicht aufgeräumt
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 2.4
Other Linux
: P5 normal (vote)
: UCS 2.4-2
Assigned To: Stefan Gohmann
Tim Petersen
:
Depends on:
Blocks: 18383 29667
  Show dependency treegraph
 
Reported: 2011-03-08 15:32 CET by Philipp Hahn
Modified: 2013-01-17 16:29 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2011-03-08 15:32:14 CET
Beim Debuggen einer von VMWare konvertierten VM trat gerade in der KVM-Testumgebung mehrfach das Problem auf, daß sich libvirtd unsauber beendet hat. Zumindest blieb das PID-File zurück, was einen automatischen Neustart durch runit verhindert hat. Ein "rm /var/run/libvirtd.pid" von Hand hat das Problem gelöst.

Ausgelöst wurde der Crash durch ungefähr folgende Sequenz:
1. "virsh edit $VM" → <domain..>...<devices>...<console type='pty'><target port='0'/></console></devices></domain>
2. "virsh start --console "$VM"
3. "virt-viewer -c qemu+ssh://.../system $VM"
4. "virsh qemu-command $VM system_reset"

$ dpkg-query -W libvirt\* qemu-kvm
libvirt-bin     0.8.7-1.52.201103020859
libvirt0        0.8.7-1.52.201103020859
qemu-kvm        0.12.4+dfsg-1~bpo50+1.3.201010011432
Comment 1 Philipp Hahn univentionstaff 2011-03-21 14:45:53 CET
Das ist gerade nochmals passiert, daß dich der libvirtd beendet hat, aber /var/run/libvirtd.pid überlebt hat, so daß er anschließend nicht mehr per RunSv automatisch neu gestartet wurde.

UNGETESTST:

--- conffiles/etc/runit/univention-libvirt/run  (Revision 23078)
+++ conffiles/etc/runit/univention-libvirt/run  (Arbeitskopie)
@@ -5,4 +5,19 @@
 
 source /etc/default/libvirt-bin
 
+if [ -f /var/run/libvirtd.pid ]
+then
+       read pid </var/run/libvirtd.pid || pid=
+       if [ -d "/proc/$pid" ]
+       then
+               exe=$(readlink /proc/$pid/exe)
+               if [ /usr/sbin/libvirtd = "$exe" ]
+               then
+                       echo "libvirtd running $pid"
+                       exit 1
+               fi
+       fi
+       rm -f /var/run/libvirtd.pid
+fi
+
 exec /usr/sbin/libvirtd ${libvirtd_opts/-d/}
Comment 2 Stefan Gohmann univentionstaff 2011-03-21 16:10:50 CET
Patch hinzugefügt
Comment 3 Tim Petersen univentionstaff 2011-03-29 09:18:31 CEST
Patch wurde eingebaut und erfüllt seinen Zweck:
Beende ich den libvirtd und erstelle eine entsprechende pidfile, so wird diese im Verlauf automatisch gelöscht und der libvirtd wieder gestartet.

Changelogeintrag ist vorhanden - verified
Comment 4 Sönke Schwardt-Krummrich univentionstaff 2011-04-04 15:47:27 CEST
UCS 2.4-2 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".