Artifact distribution errors

book

Article ID: 108862

calendar_today

Updated On:

Products

CA Release Automation - Release Operations Center (Nolio) CA Release Automation - DataManagement Server (Nolio)

Issue/Introduction

A deployment job can experience artifact distribution errors for one of several reasons. This article highlights some of the more common causes. 

Cause

There are different root causes for having artifact distribution problems. Here are links the the most common causes. Each article includes a solution unique to its root cause. 
  1. Failed to download artifact to retrieval agent
  2. ​Failed to distribute artifact to execution server
  3. Failed to download the artifact. The requested resource is not available.
  4. Cannot deploy applications as the artifact cannot be sent to the execution server.
  5. Intermittent deployment halted, distribution of artifacts fails
  6. Unable to transfer artifacts larger than 1 Gb
  7. Deploying folder as artifact fails with 'Error storing the artifact...'
  8. Retrieval action failed - Source file does not exist
  9. Artifact distribution to execution server keeps showing run button
  10. Failed to download artifact to retrieval agent Artifact download task was cancelled, agent does not respond
  11. Failed to distribute artifact to agent from execution server 

Environment

CA Release Automation v5.x - v6.x

Resolution

Apply the solution that matches your root cause. If you find that the root cause is not covered in any of the above technical articles then please open an issue with support and provide the following information after the problem occurs:


  • A screenshot showing the release details for the release with artifact distribution errors. This should include:
    - The URL. This is helpful because this will confirm the RELEASE ID that we need to troubleshoot.
    - The properties of the release (on the right side). This is helpful because we can see information related to start time, etc..
    - The PRE-DEPLOY stage page. This is helpful because it will show which artifact package was applied as well as any errors associated with the artifact distribution. It is possible that you might need to take multiple screenshots to capture all of this information (depending on screen resolution, etc..). That is why we explain which information we're after and how it is helpful.  

  • A screenshot of the artifact package.
    - To get this we recommend copying the package name from the release details -> pre-deploy stage page. Then click on the artifact package link which brings you to the artifact packages page but doesn't automatically bring you to the artifact package in question. Use the filter in the artifact package view to paste the name of the artifact package and then select the artifact package and take a screenshot off all of the artifacts in the package. You usually do not have to take a screenshot of the details for each artifact in the artifact package. But the more information the better. It is better to have the information and not need it then to need it and not have it. 

  • A copy of the logs directory from the following servers:
    - The management server.
    - All execution servers. The reason for this is because the failure could be in the route (which is not something that can easily be identified) used to distribute an artifact from one system to another.
    - The retrieval agent. See additional information (below) for how to identify which artifact retrieval agents were used for the release id with the artifact distribution error.
    - The agents being deployed to. There are two phases of artifact distribution. See below for the phases and when these agent logs are necessary.
       - Distribute to execution server. The agent logs are usually not necessary if the problem is during this phase of artifact distribution. The exception to this is when the error is saying that it was unable to find an execution server for a specific agent machine. In that case the logs from the agent should be collected and shared with support.
       - Distribute to agents. The agent logs are necessary when the problem is during this phase of artifact distribution.

Additional Information

WHICH ARTIFACT RETRIEVAL AGENT DID MY JOB USE?
If your artifacts are configured to use an artifact retrieval group then there is no way to see (in the ROC/ASAP UI) which retrieval agent from that group was used for that job. The only exception is if the error during artifact distribution tells you which artifact retrieval agent was used. It sometimes does, but not always. It depends on the error and whether or not the problem was related to the retrieval agent. But the logs from the retrieval agent are almost always needed for artifact distribution problems. You can identify which artifact retrieval agent is being used by a job by looking at the nolio_dm_all.log* files on the management server. If the logs have not been overwritten then there should be the following messages:
2017-02-10 20:24:21,033 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactPackageDistributionServiceImpl:96) - Downloading artifacts to retrieval agents for [Artifact_Package_1] for deployment [Deploy1Artifact-2 ID.3]. 

2017-02-10 20:24:21,033 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactsEngineImpl:313) - collecting data to download [1] artifacts to retrieval agents for release id [3]

2017-02-10 20:24:21,035 [StageExecutorTask-8] INFO  (com.nolio.releasecenter.services.release.execution.engine.ArtifactsEngineImpl:467) - Artifact [ Artifact_Def_1.Artifact_Type_1'ver. Artifact_Ver_1'] Will be retrieved by the agent [ra552-nag1]


In the first message you can see the job name and release id. But another piece of important information is the thread (StageExecutorTask-8) as it will likely be the same thread that is used in the second and third message. The third message is showing which artifact retrieval agent (in this case: ra552-nag1) is being used to retrieve the artifact (in this case: Artifact_Ver_1).