ARTIFACTORY: How to debug frontend service not running because of invalid joinKey

Paul Pan
2022-03-31 11:27

The Issue

Artifactory frontend will not start if an invalid joinKey is given. It may not give any helpful logging even if the logger has been set to Trace level in the system.yaml.

PS command shows frontend is starting:UID PID PPID C STIME TTY TIME CMD
root 1 0 0 20:55 ? 00:00:00 /bin/bash /entrypoint-unified.sh
root 19 1 0 20:55 ? 00:00:00 /usr/sbin/sshd
root 3537 1 18 20:55 ? 00:02:03 /opt/jfrog/artifactory/app/router/bin/jf-router
root 3730 1 0 20:55 ? 00:00:06 /opt/jfrog/artifactory/app/metadata/bin/jf-metadata
root 3878 1 0 20:55 ? 00:00:00 /opt/jfrog/artifactory/app/event/bin/jf-event
root 4027 1 0 20:55 ? 00:00:04 /opt/jfrog/artifactory/app/third-party/node/bin/node /opt/jfrog/artifactory/app/frontend/bin/server/dist/startup.js /opt/jfrog/artifactory/app/frontend
root 4171 1 0 20:55 ? 00:00:00 /opt/jfrog/artifactory/app/observability/bin/jf-observability
root 4323 1 0 20:55 ? 00:00:01 /opt/jfrog/artifactory/app/integration/bin/jf-integration
root 4496 1 38 20:55 ? 00:04:11 /opt/jfrog/artifactory/app/third-party/java/bin/java -Djava.util.logging.config.file=/opt/jfrog/artifactory/app/artifactory/tomcat/conf/logging.properties -Djava.util.logging
root 4497 1 0 20:55 ? 00:00:00 tail -f /dev/null
root 4899 19 0 20:56 ? 00:00:00 sshd: root@pts/0
root 4934 4899 0 20:56 pts/0 00:00:00 -bash
root 8448 19 0 21:05 ? 00:00:00 sshd: root@pts/1
root 8492 8448 0 21:05 pts/1 00:00:00 -bash
root 9153 4027 99 21:06 ? 00:00:01 /opt/jfrog/artifactory/app/third-party/node/bin/node /opt/jfrog/artifactory/app/frontend/bin/server/dist/bundle.js
root 9164 8492 0 21:06 pts/1 00:00:00 ps -ef

thing is listening on port 8070:tcp 0 0 127.0.0.1:8086 0.0.0.0:* LISTEN 3730/jf-metadata
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 19/sshd
tcp 0 0 127.0.0.1:8091 0.0.0.0:* LISTEN 4496/java
tcp 0 0 127.0.0.1:8061 0.0.0.0:* LISTEN 3878/jf-event
tcp 0 0 127.0.0.1:8062 0.0.0.0:* LISTEN 3878/jf-event
tcp 0 0 127.0.0.1:8036 0.0.0.0:* LISTEN 4171/jf-observabili
tcp 0 0 127.0.0.1:8071 0.0.0.0:* LISTEN 4323/jf-integration
tcp 0 0 127.0.0.1:8072 0.0.0.0:* LISTEN 4323/jf-integration
tcp 0 0 127.0.0.1:8040 0.0.0.0:* LISTEN 4496/java
tcp 0 0 0.0.0.0:8045 0.0.0.0:* LISTEN 4496/java
tcp 0 0 127.0.0.1:8046 0.0.0.0:* LISTEN 3537/jf-router
tcp 0 0 127.0.0.1:8047 0.0.0.0:* LISTEN 3537/jf-router
tcp 0 0 127.0.0.1:8015 0.0.0.0:* LISTEN 4496/java
tcp 0 0 127.0.0.1:8049 0.0.0.0:* LISTEN 3537/jf-router
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 4496/java
tcp 0 0 127.0.0.11:44211 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN 19/sshd
tcp6 0 0 :::8082 :::* LISTEN 3537/jf-router

The Solution

Try running the following command to start the frontend service in Debug mode and it will give more info:DEBUG=true /opt/jfrog/artifactory/app/third-party/node/bin/node /opt/jfrog/artifactory/app/frontend/bin/server/dist/bundle.js

2022-03-24T20:50:00.282Z [jffe ] [ERROR] [                ] [                              ] [main                ] - Error: Couldn't get access client instance, Error : [Cluster join: Failed init access client; Error: [JoinKey is less than 32 chars]]
    at Promise (/opt/jfrog/artifactory/app/frontend/bin/server/dist/webpack:/src/Access/AccessAdminClient.ts:37:18)
    at process._tickCallback (internal/process/next_tick.js:68:7)

In this case, to fix the joinKey issue, just make sure it’s 16bit ( 32 characters long ) or 32 bit ( 64 characters long)
 openssl rand -hex 16