HP Serviceguard for Linux Version A.11.16 Release Notes, Third Edition, August 2006
Serviceguard for Linux Version A.11.16 Release Notes
Known Problems and Workarounds
Chapter 1 59
JAGad39695: User error can result in “ghost” services
• What is the problem? If a cluster has a package with a service that is
failing but that is not actually needed, and the package ascii file and
package script are edited and then a cmapplyconf is executed, this
will result in an error since the package is still running. Then if you
halt the package, the service will not be halted, since the service
definition has already been removed from the package control script.
Hence the service is now a “ghost service”. While it is now possible to
run a cmapplyconf and restart the package without errors, there is
no way to tell Serviceguard to stop the ghost service. syslog will
show that a ghost service is being re-started repeatedly every 10
seconds:
Nov 23 13:37:55 yyzhqpd1 cmcld: Service oasmon terminated due to an exit(1).
Nov 23 13:37:55 yyzhqpd1 cmcld: Automatically restarted service oasmon for the
7995th time after failure.
Nov 23 13:37:55 yyzhqpd1 cmcld: Service oasmon has no status entry.
Either its package is not running or this is not a configured service name.
Nov 23 13:37:55 yyzhqpd1 cmsrvassistd[17286]: Unable to mark service oasmon (pid
17286) as UP
The root cause of this is that when the package was shutdown,
references for this service had already been removed from the
package control script, and the service failed while the package was
halting.
Since the service no longer exists it cannot be halted manually. Any
attempt to do so results in the error:
cmhaltserv : Service name oasmon is not running.
• What is the workaround? Make sure you follow the correct procedure
when removing a service by halting the package before you start
editing any file. If you end up with a ghost service, add a new
package with a service name matching the service that was
originally deleted then halt the service with cmhaltserv. This will
resolve the problem without halting either the package, node, or
cluster. Alternatively, if the cluster or node were halted and restarted
the ghost service will be removed. This second method requires
cluster or node downtime which is not possible in some 24x7
environments.