From 980dd69478d0b78187e46d2d2b3a5fa86f402d47 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Thu, 16 Jun 2011 12:14:09 -0400 Subject: [PATCH] don't include the whole /usr/share/java/ directory in classpath, or you will get stackoverflow, and delete vm data folder after vm stopped --- agent/libexec/agent-runner.in | 2 +- .../cloud/agent/vmdata/JettyVmDataServer.java | 20 +++++-------------- wscript_configure | 8 ++++++++ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/agent/libexec/agent-runner.in b/agent/libexec/agent-runner.in index f7b402b8cda..3a975e96fbe 100755 --- a/agent/libexec/agent-runner.in +++ b/agent/libexec/agent-runner.in @@ -7,7 +7,7 @@ SYSTEMJARS="@SYSTEMJARS@" SCP=$(build-classpath $SYSTEMJARS) ; if [ $? != 0 ] ; then SCP="@SYSTEMCLASSPATH@" ; fi DCP="@DEPSCLASSPATH@" ACP="@AGENTCLASSPATH@" -export CLASSPATH=/usr/share/java/'*':$SCP:$DCP:$ACP:@AGENTSYSCONFDIR@ +export CLASSPATH=$SCP:$DCP:$ACP:@AGENTSYSCONFDIR@ for jarfile in "@PREMIUMJAVADIR@"/* ; do if [ ! -e "$jarfile" ] ; then continue ; fi CLASSPATH=$jarfile:$CLASSPATH diff --git a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java index e5e2bbec3fb..b013ec8e729 100644 --- a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java +++ b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java @@ -60,6 +60,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.storage.JavaStorageLayer; import com.cloud.storage.StorageLayer; import com.cloud.utils.net.NetUtils; +import com.cloud.utils.script.Script; /** * Serves vm data using embedded Jetty server @@ -283,14 +284,9 @@ public class JettyVmDataServer implements VmDataServer { @Override public Answer handleVmDataCommand(VmDataCommand cmd) { String vmDataDir = _vmDataDir + File.separator + cmd.getVmName(); - try { - _fs.cleanup(vmDataDir, _vmDataDir); - _fs.mkdirs(vmDataDir); - } catch (IOException e1) { - s_logger.warn("Failed to cleanup vm data dir " + vmDataDir, e1); - return new Answer(cmd, false, "Failed to cleanup or create directory " + vmDataDir); - } - + + Script.runSimpleBashScript("rm -rf " + vmDataDir); + _fs.mkdirs(vmDataDir); for (String [] item : cmd.getVmData()) { try { @@ -346,13 +342,7 @@ public class JettyVmDataServer implements VmDataServer { @Override public void handleVmStopped(String vmName) { String vmDataDir = _vmDataDir + File.separator + vmName; - try { - _fs.cleanup(vmDataDir, _vmDataDir); - _fs.mkdirs(vmDataDir); - } catch (IOException e1) { - s_logger.warn("Failed to cleanup vm data dir " + vmDataDir, e1); - } - + Script.runSimpleBashScript("rm -rf " + vmDataDir); } } diff --git a/wscript_configure b/wscript_configure index 25933de6dc8..84bd256a5c3 100644 --- a/wscript_configure +++ b/wscript_configure @@ -59,6 +59,14 @@ systemjars = { "jasper-6.0.28.jar", "el-api-2.1.jar", "jasper-el-6.0.28.jar", + "cglib.jar", + "asm3.jar", + "jetty.jar", + "jetty-util.jar", + "jetty-start-daemon.jar", + "jetty-sslengine.jar", + "jetty-start.jar", + "slf4j-log4j12.jar", #"catalina.jar", ), 'Windows':