From e8c27c197804b700db91ed7b14689d0be0657c35 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Fri, 16 Mar 2012 14:43:45 -0700 Subject: [PATCH] bug 14215: Fix SSVM on Xen kernel panic due to "too many env var" Just add different delimitor for VM and extract them from cmdline later. status 14215: resolved fixed --- .../com/cloud/hypervisor/xen/resource/CitrixResourceBase.java | 2 +- .../cloud/hypervisor/xen/resource/XenServer56FP1Resource.java | 2 +- patches/systemvm/debian/config/etc/init.d/cloud-early-config | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 2f3ad9094d7..2caa49c0924 100755 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -860,7 +860,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe String bootArgs = vmSpec.getBootArgs(); if (bootArgs != null && bootArgs.length() > 0) { String pvargs = vm.getPVArgs(conn); - pvargs = pvargs + vmSpec.getBootArgs(); + pvargs = pvargs + vmSpec.getBootArgs().replaceAll(" ", "%"); if (s_logger.isDebugEnabled()) { s_logger.debug("PV args are " + pvargs); } diff --git a/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java b/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java index fb5b0ee2254..4ff8a733b55 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java +++ b/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java @@ -180,7 +180,7 @@ public class XenServer56FP1Resource extends XenServer56Resource { String bootArgs = vmSpec.getBootArgs(); if (bootArgs != null && bootArgs.length() > 0) { String pvargs = vm.getPVArgs(conn); - pvargs = pvargs + vmSpec.getBootArgs(); + pvargs = pvargs + vmSpec.getBootArgs().replaceAll(" ", "%"); if (s_logger.isDebugEnabled()) { s_logger.debug("PV args are " + pvargs); } diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config index ae164e33b04..7c0e50da142 100755 --- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config +++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config @@ -89,6 +89,7 @@ get_boot_params() { case $hyp in xen-domU) cat /proc/cmdline > /var/cache/cloud/cmdline + sed -i "s/%/ /g" /var/cache/cloud/cmdline ;; kvm) # KVM needs to mount another disk, to get cmdline