We have two Artifactory nodes running on Amazon Linux 2. When doing routine patching this week (via yum update) the Artifactory Pro package was updated from 7.71.11-77111900.x86_64 to 7.77.5-77705900.x86_64. Afterward, the startup began hanging with the browser displaying "The JFrog Platform is warming up and should be ready shortly."
Here are the notable things I'm seeing in the logs:
router-service.log:
2024-02-16T21:16:14.582Z [jfrou] [WARN ] [6f99219151be024f] [healthcheck.go:62 ] [main ] [] - Checking health of service 'jffe_01e3j58vyas2170590cszx1jxx-artifactory2_host2' using URL 'http://localhost:8070/readiness' returned an error: Get "http://localhost:8070/readiness": dial tcp [::1]:8070: connect: connection refused
2024-02-16T21:16:14.583Z [jfrou] [WARN ] [6f99219151be024f] [local_topology.go:369 ] [main ] [] - Readiness test failed with the following error: "required node services are missing or unhealthy"
artifactory-service.log:
2024-02-16T21:16:38.425Z [jfrt ] [WARN ] [93038b0251b4e0f9] [o.a.w.s.RequestUtils:157 ] [http-nio-8081-exec-7] - Request /router/api/v1/system/health should be a repo request and does not match any repo key
frontend-sertvice.log:
2024-02-13T17:09:26.298Z [jffe ] [ESC[34M[INFO ]ESC[39M] [] [frontend-service.log] [main ] - pinging artifactory attempt number 300 failed with code : undefined
2024-02-13T17:09:27.300Z [jffe ] [ESC[31MESC[1M[ERROR]ESC[22MESC[39M] [] [frontend-service.log] [main ] - Error starting application - Error: Failed pinging artifactory for 300Request failed with status code 500
access-service.log:
2024-02-16T20:44:34.931Z [jfac ] [ERROR] [b8771c33ae063f70] [o.j.c.ExecutionUtils:296 ] [jf-common-pool-2 ] - Router readiness check failed, cannot start Access
2024-02-16T20:44:34.934Z [jfac ] [ERROR] [b8771c33ae063f70] [a.s.b.AccessServerRegistrar:85] [jf-common-pool-0 ] - Could not register access
java.util.concurrent.CompletionException: java.util.concurrent.ExecutionException: org.jfrog.common.ExecutionFailed: Router readiness check failed, cannot start Access
The result of curl -s http://localhost:8046/router/api/v1/topology/health
shows:
{
"nodes": {
"http://127.0.0.1:8082": {
"service_registry_state": "UNHEALTHY_PEER",
"last_heartbeat": 1708118369609,
"effective_state": "UNHEALTHY_PEER",
"health_response": {
"router": {
"message": "OK",
"node_id": "artifactory2.shared.ausw2",
"required_service_types": [
"jfrt",
"jfac",
"jfmd",
"jffe",
"jfob",
"jfcon",
"jfevt"
],
"state": "HEALTHY"
},
"services": [
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jf-artifactory@ae8dcc42-9215-4b04-b246-b693d64fccdc",
"state": "UNHEALTHY_PEER"
},
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jfac@01e3j58vyas2170590cszx1jxx",
"state": "UNHEALTHY_PEER"
},
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jfcon@01e3j58vyas2170590cszx1jxx",
"state": "UNHEALTHY_PEER"
},
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jfevt@01e3j58vyas2170590cszx1jxx",
"state": "UNHEALTHY_PEER"
},
{
"message": "Get \"http://localhost:8070/readiness\": dial tcp [::1]:8070: connect: connection refused",
"node_id": "artifactory2.host2",
"service_id": "jffe@01e3j58vyas2170590cszx1jxx",
"state": "UNHEALTHY"
},
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jfmd@01fpx402x3pzz7w0d58j0z8p2k",
"state": "UNHEALTHY_PEER"
},
{
"message": "Service is healthy; there is at least one unhealthy service",
"node_id": "artifactory2.host2",
"service_id": "jfob@ae8dcc42-9215-4b04-b246-b693d64fccdc",
"state": "UNHEALTHY_PEER"
}
]
}
}
}
What I've tried:
Netstat shows nothing is listening on port 8070, although on our working host it shows node is listening on that port. I suspect this is because the underlying service isn't running properly.
I'd appreciate any further ideas. Jfrog doesn't give support at this subscription level.
Please see the release notes.
As part of JFrog commitment to maintain the security and reliability of the JFrog Platform, Artifactory will officially run with Node.js 20.x on all installation types from Artifactory 7.77.3.
Amazon Linux 2 is no longer supported from 7.77.3 due to it not supporting Node.js 20x.
This is why your frontend microservice can not start.
Your only option here is to restore your DB to before the upgrade and reinstall the prior working Artifactory version. Or to upgrade your OS to a supported one, see here: https://jfrog.com/help/r/jfrog-installation-setup-documentation/artifactory-system-requirements-and-platform-support
Amazon Linux 2023 might be the easiest option for you.