Issue
I am trying to push a nodejs/angularjs app but getting below errors.
> Instance never healthy after 1m0s: Failed to make TCP connection to
> port 8080: connection refused; process did not exit
I have tried the following but failed miserably (Apologies, I am a newbie):
- Increased the timeout for healthcheck using -t to 600 or more but it is still failing.
- Upscaled the resources (RAM etc.) and that did not help either.
- Waited overnight for the issue to magically disappear...
Output of cf logs apptheone --recent
:
> 2019-10-24T14:46:29.56+0530 [CELL/0] OUT Downloading droplet...
> 2019-10-24T14:46:30.64+0530 [CELL/0] OUT Downloaded droplet
> 2019-10-24T14:46:30.87+0530 [CELL/0] OUT Starting health monitoring of
> container 2019-10-24T14:46:31.93+0530 [APP/PROC/WEB/0] OUT >
> apptheone@1.0.0 start /home/vcap/app 2019-10-24T14:46:31.93+0530
> [APP/PROC/WEB/0] OUT > node build.js && http-server -a localhost -p
> 8000 -c-1 ./app 2019-10-24T14:46:32.15+0530 [APP/PROC/WEB/0] OUT
> Starting up http-server, serving ./app 2019-10-24T14:46:32.15+0530
> [APP/PROC/WEB/0] OUT Available on: 2019-10-24T14:46:32.15+0530
> [APP/PROC/WEB/0] OUT http://localhost:8000
> 2019-10-24T14:46:32.15+0530 [APP/PROC/WEB/0] OUT Hit CTRL-C to stop
> the server 2019-10-24T14:47:31.64+0530 [HEALTH/0] ERR Failed to
> make TCP connection to port 8080: connection refused
> 2019-10-24T14:47:31.64+0530 [CELL/0] ERR Timed out after 1m0s: health
> check never passed. 2019-10-24T14:47:31.64+0530 [CELL/SSHD/0] OUT
> Exit status 0 2019-10-24T14:47:47.73+0530 [CELL/0] OUT Cell
> 91bc6c2e-8684-46ac-9047-a62e099b0941 stopping instance
> 37f79676-3d09-4e44-4f79-fab8 2019-10-24T14:47:47.73+0530 [CELL/0]
> OUT Cell 91bc6c2e-8684-46ac-9047-a62e099b0941 destroying container for
> instance 37f79676-3d09-4e44-4f79-fab8 2019-10-24T14:47:47.74+0530
> [API/1] OUT Process has crashed with type: "web"
> 2019-10-24T14:47:47.76+0530 [API/1] OUT App instance exited with guid
> cb94664f-0016-48b3-8467-15d128e4521b payload:
> {"instance"=>"37f79676-3d09-4e44-4f79-fab8", "index"=>0,
> "cell_id"=>"91bc6c2e-8684-46ac-9047-a62e099b0941",
> "reason"=>"CRASHED", "exit_description"=>"Instance never healthy after
> 1m0s: Failed to make TCP connection to port 8080: connection refused;
> process did not exit", "crash_count"=>6,
> "crash_timestamp"=>1571908667728853273,
> "version"=>"25df8154-3283-4807-b0eb-d0f7351ec85d"}
> 2019-10-24T14:47:47.90+0530 [PROXY/0] OUT Exit status 137
> 2019-10-24T14:47:48.64+0530 [CELL/0] OUT Cell
> 91bc6c2e-8684-46ac-9047-a62e099b0941 successfully destroyed container
> for instance 37f79676-3d09-4e44-4f79-fab8
Output of cf events apptheone
:
> 2019-10-24T14:21:47.00+0530 app.crash bobthefixerB
> index: 0, reason: CRASHED, cell_id:
> 91bc6c2e-8684-46ac-9047-a62e099b0941, instance:
> 64e466c1-8b7e-41d5-5a80-7408, exit_description: Instance never healthy
> after 1m0s: Failed to make TCP connection to port 8080: connection
> refused; process did not exit 2019-10-24T14:21:47.00+0530
> audit.app.process.crash web index: 0, reason:
> CRASHED, cell_id: 91bc6c2e-8684-46ac-9047-a62e099b0941, instance:
> 64e466c1-8b7e-41d5-5a80-7408, exit_description: Instance never healthy
> after 1m0s: Failed to make TCP connection to port 8080: connection
> refused; process did not exit 2019-10-24T14:06:29.00+0530
> audit.app.process.crash web index: 0, reason:
> CRASHED, cell_id: d5d90154-3642-4ff0-8ed7-00ea8c96bb5d, instance:
> 899dc217-0cfa-418a-7920-3814, exit_description: Instance never healthy
> after 1m0s: Failed to make TCP connection to port 8080: connection
> refused; process did not exit
Here is what our package.json looks like:
{
"name": "apptheone",
"private": true,
"version": "1.0.0",
"description": "bla bla blaa",
"license": "MIT",
"devDependencies": {
"chai": "^4.1.2",
"check-dependencies": "^1.1.0",
"eslint": "^4.19.1",
"eslint-config-google": "^0.9.1",
"http-server": "^0.10.0",
"loadash": "^1.0.0",
"mocha": "^5.0.5",
"protractor-jasmine2-html-reporter": "0.0.7"
},
"scripts": {
"update-deps": "npm update",
"start": "node build.js && http-server -a localhost -p 8000 -c-1 ./app",
"protractor": " cd ./tests && protractor protractor.conf.js",
"test": "node node_modules/mocha/bin/mocha node-red/test/**/*.js"
},
"dependencies": {
"auditjs": "^2.4.3",
"bower": "^1.8.4",
"dependency-check": "^3.1.0",
"jslint": "^0.11.0",
"json-formatter-js": "^2.2.0",
"npm": "^5.8.0",
"requirejs": "^2.3.5",
"shelljs": "^0.8.3"
}
}
NOTE: When I tried to push the app for the first time I was able to successfully do so with a simple cf push apptheone
and the static webpage was live as well. But then I was playing around with the PCF UI and removed the application and it's associated services/routes and I haven't been able to push the same app ever since. No changes to the app code at all.
Solution
Please double check that your application is listening on 0.0.0.0
as opposed to localhost
. When only listening on localhost
, this can cause the health check to fail because your app is not available outside of the container where it's running.
Answered By - Daniel Mikusa
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.