Вызов moveItem в Artifactory REST API приводит к ошибкам блокировки - PullRequest
1 голос
/ 23 января 2020

Я работаю над сценарием Python для автоматического перемещения пакетов с одного пульта Conan на другой. Оба пульта находятся на одном сервере Artifactory Pro. Чтобы сделать это эффективно, я хотел бы использовать Artifactory REST API - moveItem . Поскольку это сценарий Python, я использую для этого модуль rtpy .

Этот сценарий пытается переместить несколько тысяч пакетов, и в основном он работает нормально. В <10% случаев, хотя я получаю ошибку от API. Серьезной проблемой является то, что двоичные файлы теряются - они уже удалены из источника, но не добавлены на целевой пульт. Это только повредило кучу тестовых артефактов, я надеюсь, что никто больше не имел этой проблемы в производственной среде. </p>

Ошибка rtpy выглядит следующим образом (удалены указанные c пакета и удаленные имена):

Exception while moving artifact [PACKAGE] ([PACKAGE-REF])
Exception was The json output for the error was malformed (Not a standard Artifactory REST API error json), set the "raw_response" setting to True in your settings dictionary to get a raw requests.Response() object for debugging!, requests.Response.text : {
  "messages" : [ {
    "level" : "ERROR",
    "message" : "Failed to move from src=[SOURCE-PACKAGE] to target=[TARGET_PACKAGE]: Lock on LockEntryId [FILE-FROM-PACKAGE-ON-TARGET-REMOTE] not acquired in 120 seconds. Lock info: org.artifactory.storage.fs.lock.provider.JVMLockWrapper@71934dd7."
  } ]
}

Возможно ли, что несколько команд moveItem вскоре после другой могут привести к этим проблемам? Что я могу сделать, чтобы избежать этого? Кто-то еще пробовал что-то подобное?

...