ARTIFACTORY: Why does the message "Timed-out waiting on concurrent download" appear in my logs?

ARTIFACTORY: Why does the message "Timed-out waiting on concurrent download" appear in my logs?

AuthorFullName__c
Fadi Rouhana
articleNumber
000005703
ft:sourceType
Salesforce
FirstPublishedDate
2023-05-02T09:11:38Z
lastModifiedDate
2023-05-02
VersionNumber
1

When using Artifactory, users may encounter a timeout entry while downloading an artifact from a remote repository. This error is logged in the artifactory-service.log file, which can be found in the $JFROG_HOME/artifactory/var/log directory. The error message looks like the following:

2023-04-30T08:56:27.326Z [jfrt ] [INFO ] [48fba44eb637f6cb] [o.a.r.RemoteRepoBase:701 ] [p-nio-8081-exec-1011] - Timed-out waiting on concurrent download of 'ARTIFACT_PATH' in 'REPOSITORY_NAME'.

This error occurs when a client initiates a download request for an artifact that is already being downloaded from a remote repository with a lock on it. Artifactory uses a single remote downloader per artifact, which means that whenever an artifact is pulled from a remote repository, a lock is allocated for that artifact. Concurrent downloads mean that a client has initiated another download request for an artifact that already has a lock on it.

By default, Artifactory will terminate concurrent download attempts if the lock has not been released within 15 minutes of the original download request (determined by the artifactory.repo.concurrentDownloadSyncTimeoutSecs system property). This means that if the original download request is still in progress, any concurrent download requests will be rejected.

However, you may adjust the value of the artifactory.repo.concurrentDownloadSyncTimeoutSecs system property. This can be done by modifying the $JFROG_HOME/artifactory/var/etc/artifactory/artifactory.system.properties file. By default, the value of artifactory.repo.concurrentDownloadSyncTimeoutSecs is set to 900 seconds (15 minutes). However, if downloading the artifact will take more than 15 minutes (especially for very large artifacts), you can increase this value to avoid a timeout.

For example, a user can set the timeout value to 30 minutes (1800 seconds) by adding the following line to the artifactory.system.properties file:
artifactory.repo.concurrentDownloadSyncTimeoutSecs=1800

This will allow Artifactory to wait up to 30 minutes for the original download request to complete before rejecting concurrent download attempts.