Skip to content
shatterednirvana edited this page Mar 27, 2013 · 29 revisions

Introduction

We all love AppScale, but like all software, it once in a while has problems. This post outlines what to do when you run into a problem with AppScale, how to debug it, and how to fix it. Of course, you can always ask us for help on IRC (#appscale on freenode.net).

AppScale didn't come up successfully

If you ran "appscale up" to start AppScale and it didn't start, it could have failed for any of the following reasons:

  • (VirtualBox) AppScale hung at "Please wait for AppScale to start your machines."
  • (EC2) You're using Spot Instances but AppScale is hung at "Waiting for machines to become available."
  • (Eucalyptus) AppScale hung at "Waiting for machines to become available."

Let's look at each of these individually.

AppScale on VirtualBox

AppScale on EC2

If you're using Spot Instances (you've set "use_spot_instances : True" in your AppScalefile), there is a possibility that Amazon won't have any spare machines available at the price and instance type you requested. Typically it takes us about 5 minutes to get a Spot Instance, so if it takes you substantially longer than that (say, 10 minutes), then you can log into the AWS Dashboard, click on EC2, and then click on Spot Instances. There, you can see why your machines aren't available. You can cancel your Spot Instance Request and try again with a higher price or a different instance type, depending on the message the dashboard reports.

AppScale on Eucalyptus

When running on Eucalyptus, if there are no virtual machines available, AppScale won't be able to start up. For example, if you tell AppScale to run over 8 machines, and you only have 6 available, then that won't work! In this case, you'll see a message from the tools saying "Spawning 7 virtual machines" (since we spawn one machine and delegate the responsibility of starting up the other 7 to it), and the tools will eventually crash, since the AppController won't be able to get the remaining 7 machines. In this case, the solution is simple - make sure you have enough virtual machines available before you start AppScale! In Eucalyptus, an administrator can find out how many virtual machines are free by running "euca-describe-availability-zones verbose".

Forcefully cleaning up AppScale state

If, for some reason, running "appscale down" isn't able to terminate your AppScale deployment, you can bring your VMs back to a pristine state by logging into each of your VMs and running:

ruby /root/appscale/AppController/terminate.rb

This script forcefully kills all of the AppScale-related processes, and you can ignore the output it produces. You can double-check that AppScale has been stopped by verifying that there are no Python, Java, or Ruby processes running (by running "ps ax | grep python"). Since it doesn't clean up local state wherever you ran the AppScale Tools from, they may complain that you need to set the "force" flag to continue. You can do this by setting "force : True" in your AppScalefile.

Clone this wiki locally