Bug ID | 920253 |
---|---|
Summary | xencommons startup script does not behave under a pvops xen environment |
Classification | openSUSE |
Product | openSUSE Factory |
Version | 201502* |
Hardware | x86-64 |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Xen |
Assignee | carnold@suse.com |
Reporter | mlatimer@suse.com |
QA Contact | qa-bugs@suse.de |
CC | jgross@suse.com |
Found By | --- |
Blocker | --- |
When booting into Xen with a pvops kernel, /proc/xen is not mounted and xl/virsh commands fail to connect to libxl. Manually mounting xenfs (using `mount none /proc/xen -t xenfs`) allows the xl/virsh commands to work properly. Juergen found that this problem seems to be related to the xencommons definition for systemd: # cat /usr/lib/systemd/system/xencommons.service [Unit] Description=Xencommons - Script to start and stop xenstored and xenconsoled ConditionPathExists=/proc/xen [Service] Type=oneshot RemainAfterExit=true ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities ExecStart=-/etc/init.d/xencommons start ExecStop=/etc/init.d/xencommons stop [Install] WantedBy=multi-user.target The "ExecStartPre" condition tests /proc/xen/capabilities, which in turn will appear only after xencommons has been started... As xencommons is handling the non-Xen case just fine, I'd suggest to remove the "ExecStartPre" line completely. In addition to the above problem, Juergen found another issue in xencommons - the xen kernel modules have been renamed to xen-* in the pvops kernel. As such, the /etc/init.d/xencommons script needs to be modified to handle both variants, as follows: modprobe evtchn 2>/dev/null || modprobe xen-evtchn 2>/dev/null || true modprobe gntdev 2>/dev/null || modprobe xen-gntdev 2>/dev/null || true modprobe gntalloc 2>/dev/null || modprobe xen-gntalloc 2>/dev/null || true modprobe netbk 2>/dev/null || modprobe xen-netback 2>/dev/null || true modprobe blkbk 2>/dev/null || modprobe xen-blkback 2>/dev/null || true modprobe xen-scsibk 2>/dev/null || modprobe xen-scsiback 2>/dev/null || true modprobe usbbk 2>/dev/null || modprobe xen-usbback 2>/dev/null || true modprobe pciback 2>/dev/null || modprobe xen-pciback 2>/dev/null || true