When you deploy the Healthwatch tile, it gets stuck when the Push Monitoring Components (
push-apps) errand is executed.
The output of Apply Changes may show something similar to the following:
===== 2020-05-30 17:16:11 UTC Running "/usr/local/bin/bosh --no-color --non-interactive --tty --environment=<Bosh-IP> --deployment=p-healthwatch-<guid> run-errand push-apps --instance healthwatch-forwarder/first"
...
...
############################################### Pushing Apps in Parallel ###############################################
<No logs after this step>
Note: This output above will show up if you have tried cancelling the BOSH task and manually execute the script that
push-apps errand initiates in the
healthwatch-forwarder VM at this location,
/var/vcap/jobs/push-apps/bin/run.
The
run script executes a method called
push_apps_in_paraller() from the main function to push Healthwatch monitoring components apps. For example,
bosh-health-check,
healthwatch-injestor, etc.
main() {
...
...
push_apps_in_parallel
run_after_deploy_migrations
}
The
push_apps_in_parallel method looks like this:
push_apps_in_parallel() {
print_centered "Pushing Apps in Parallel"
apps=$(ruby "${scripts_dir}/app_helpers.rb" "${app_manifests}" get-apps)
if ! parallel \
--files \
--halt soon,fail=3 \
--joblog "${JOB_LOG}" \
--jobs 5 \
--no-notice \
--results "${RESULTS_DIR}" \
--retries 2 \
deploy_app ::: "${apps}"
then
print_parallel_errors
exit 1
fi
cf delete bosh-task-check -f -r
}
When this function is stuck, it logs the stderr and stdout in a temporary directory on the ephemeral storage under
/var/vcap/data/push-apps/tmp. In this
tmp directory, a sub-directory
result-<NUM> gets created that contains a
stderr file.
If you look at that file, it will show you the following error:
mkdir /1 failed to create (or no such file or directory)