after package install of eucalyptus-cloud, walrus, sc, only cloud service is loaded
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
eucalyptus (Ubuntu) |
Fix Released
|
Medium
|
Thierry Carrez | ||
Karmic |
Fix Released
|
Medium
|
Thierry Carrez |
Bug Description
The eucalyptus-cloud, -walrus, and -sc services all run as web services under the same process if installed on the same machine. The init scripts, upon 'start', check if the web service file exists, and the process is running; if both are true, the init script does nothing and exits successfully. However, this is a problem if one installs and runs one service (say 'cloud'), then installs another (say 'walrus'). The first service installs the cloud web service file, calls the init script, which starts the process. The second service installs the file, but the init script doesn't restart the process since it only checks for file/process existence, which are both true.
The workaround is to install all services (cloud, walrus, sc), then restart any one of the services using the init script. When the process restarts, it has all three services loaded.
One solution would be to require that the 'start' of any service restarts the process.
Another solution is based on how the service init scripts function. When the init scripts are called with 'stop', the process is stopped, the web service file is moved to '$file.disabled', and the process is restarted. A way around this problem may be to install the service files from the package as '$file.disabled', so that the first 'start' that is called on post install correctly restarts the process which will ensure that the service is loaded.
Changed in eucalyptus (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
milestone: | none → ubuntu-9.10-beta |
status: | Triaged → New |
Changed in eucalyptus (Ubuntu Karmic): | |
status: | New → Triaged |
assignee: | nobody → Thierry Carrez (ttx) |
Changed in eucalyptus (Ubuntu Karmic): | |
status: | Triaged → In Progress |
Changed in eucalyptus (Ubuntu Karmic): | |
milestone: | ubuntu-9.10-beta → none |
I think having 'start' restart the process if it isn't already providing the necessary service would be reasonable enough.
I filed a separate bug about how the init scripts work recently, but even then, presumably you'd still have to restart the frontend to get it to run an additional service. The only way around that would be to actually run multiple Java frontends, one per service, which presumably has a memory cost?
This presumably doesn't affect initial installation using the installer CD, since package installations in the target chroot don't start services.