A host in the EGO cluster might become blocked if the service allocation fails. When a service instance exits with a certain exit code, the host will be blocked (see BlockHostExitValues in the service definition file to see which exit codes are configured to trigger host blocking). In this case, a host is not blocked due to an error; instead, the service is configured to not run the instance on the specific host after exiting with the configured values.
A host might also become blocked if the service controller cannot find an "ActivitySpecification" record in the service definition file for the allocated host. After vemkd allocates a host to the service controller for a service, the service controller searches the service definition file for a matching ActivitySpecification and then starts a service instance on the allocated host. However, if the service controller cannot find a matching ActivitySpecification, it will put the host on a blocked list.
We recommend making "ActivitySpecification" and "ResourceRequirement" consistent in the service definition file. This is commonly done by configuring a default "ActivitySpecification" named "all" for all the host types that are not explicitly specified in "ActivitySpecification".