Have a question? Want to report an issue? Contact JFrog support

Skip to end of metadata
Go to start of metadata

Overview

The Artifactory User Guide provides troubleshooting tips for different topics on the relevant pages describing those topics.


Installing Artifactory

Artifactory Does Not Start Up

 There are no log file entries in $ARTIFACTORY_HOME/logs/artifactory.log
CauseAn exception was thrown (possibly by your servlet container) before Artifactory loaded its logging mechanism.
ResolutionCheck your servlet container's localhost.log file. For more information, please refer to Artifactory Log Files.

Installing with Docker

This section describes different ways you can troubleshoot a running or stopped Docker container that is not functioning as expected.

Page Contents

Container State

The docker ps command lists containers in your system.

$ docker ps     # Lists running containers
$ docker ps -a  # Lists all containers

Logs

Artifactory logs are stored in the Artifactory container under /var/opt/jfrog/artifactory/logs.

If you ran the container with a mounted volume for Artifactory data (/var/opt/jfrog/artifactory/), you can also access the logs locally on your host.

An easy way to see the logged output of a running container is through the docker logs command

$ docker logs <container name>

This will output all of the container's STDOUT and STDERR to the screen both for running and stopped containers.

Connect to a Running Container

You can connect to a running container's file system and open an interactive command prompt in the container with the docker exec command

$ docker exec -it <container name> /bin/bash

This will open a command prompt in the running Artifactory container, logging you in as root and placing you in the / directory.

Run an Alternate Entrypoint 

There are cases where you want to run the container, but not start up Artifactory. To do this, you need to override the configured entrypoint script using docker run --entrypoint=bash

$ docker run -it --entrypoint=/bin/bash -v /var/opt/jfrog/artifactory:/var/opt/jfrog/artifactory -p 8081:8018 docker.bintray.io/jfrog/artifactory-pro:latest

This will run the container, presenting you with a prompt in the container, but without executing the /entrypoint-artifactory.sh file.

You can then make changes to the container configuration execute /entrypoint-artifactory.sh to start up Artifactory in your container.


Installing Artifactory HA

Please refer to Troubleshooting HA.


Access Tokens or Access Service

 An exception is thrown for "java.lang.IllegalStateException: Provided private key and latest private key fingerprints mismatch"
Symptoms

During startup, Artifactory fails to start and an error is thrown:

java.lang.IllegalStateException: Provided private key and latest private key fingerprints mismatch.
Cause

Artifactory tries to validate and compare access keys' fingerprint that reside on Artifactory's database and the local file system. If the keys do not match, the exception above will be thrown along with the mismatching fingerprint IDs.

This could occur during an attempted upgrade/installation of Artifactory.
Resolution

Follow the steps below to make sure that all instances in your circle of trust have the same private key and root certificate: 

Key rotation will invalidate any issued access tokens

The procedure below will create new key pairs which in turn will invalidate any existing Access Tokens.

    1. Create an empty marker file called bootstrap.reset_root_keys under $ARTIFACTORY_HOME/access/etc/
    2. Restart Artifactory.
    3. Verify that the $ARTIFACTORY_HOME/logs/artifactory.log or $ARTIFACTORY_HOME/access/logs/access.log file shows the following entry:
    ****************************************************************
    *** Skipping verification of of the root private fingerprint ***
    ****************************************************************
    *** Private key fingerprint will be overwritten ****************
    ****************************************************************

 

 

 The access token I generated is not working
SymptomsAuthentication with an access token doesn't work with an error that says "Token validation failed".
CauseThe implementation of access tokens was changed in Artifactory 5.4. The change is backwards compatible, so tokens created with earlier versions of Artifactory can be authenticated in the new version, however the reverse is not true. Tokens created in versions 5.4 or later cannot be authenticated by versions earlier than 5.4.
ResolutionEither upgrade your older Artifactory instances, or make sure you only create access tokens with the older instances

Upgrading Artifactory

Recovering from Error: An incompatible index has been found for the Artifactory ‘node_props’ database table 

 This error may be caused by certain property values that exceed the allowed length limit on PostgreSQL.

If you are using PostgreSQL and see this message in the Artifactory UI, it is most likely that you have upgraded your Artifactory version to 6.5.0 or above and experienced database conversion that failed to convert indexes for the 'node_props' table. This may be due to certain property values with a length that exceeds the allowed limit of 2400 characters. These long property values are usually a result of internal Artifactory procedures such as package indexing that tag artifact metadata, such as a readme, as properties.

To fix the index, is it mandatory to trim the property values exceeding the maximum allowed limit. Artifactory will not automatically fix and trim the property values as they could be valuable to you. For this reason, we provide the following two REST API's:

  1. Returns response of invalid properties, if any exist.

    GET api/system/postgresql/properties/listInvalidProperties

    Response
    {
      "properties" : {
        "propKey" : [ "original long package readme file content.." ],
        "propKey2" : [ "original long value..", "another original long value.." ]
      }
    }
  2. Trims the invalid properties, if any exist, to the maximum allowed length and run the index conversion.

    POST api/system/postgresql/properties/fix?dry=0/1

    Response:
    {
      "indexFixed" true,
      "properties" : {
        "propKey" : [ "trimmed value1" ],
        "propKey2" : [ "trimmed value1", "trimmed value2" ]
      }
    }

 

 

  • No labels