Экземпляр Gradle в настоящее время используется. ГПЦ - PullRequest
0 голосов
/ 13 февраля 2020

В моем коде должно быть запущено несколько экземпляров gradle, начиная с python, поскольку каждый объект gradle будет представлять собой независимую симуляцию (для этого потребуется некоторое время, прежде чем я его убью).

Итак, когда Я запускаю свой код на отдельной (персональной) машине, код выполняется (хотя и медленно) без ошибок, которые отображаются на HP C. В настоящее время у меня есть пробежка, которая в этот момент идет в течение ~ 40 часов (на лабораторном компьютере), и она не показывает ни одной из ошибок, которые появляются на HP C.

Основная ошибка заключается в том, что запуск нескольких Java симуляторов в рабочих скриптах как-то противоречив.

Ошибка:

INFO:JAVA:FAILURE: Build failed with an exception.
INFO:JAVA:
INFO:JAVA:* What went wrong:
INFO:JAVA:Could not create service of type FileHasher using GradleUserHomeScopeServices.createCachingFileHasher().
INFO:JAVA:> Timeout waiting to lock file hash cache (/home/ad5238/.gradle/caches/5.1.1/fileHashes). It is currently in use by another Gradle instance.
INFO:JAVA:  Owner PID: 184305
INFO:JAVA:  Our PID: 148798
INFO:JAVA:  Owner Operation: 
INFO:JAVA:  Our operation: 
INFO:JAVA:  Lock file: /home/ad5238/.gradle/caches/5.1.1/fileHashes/fileHashes.lock
INFO:JAVA:
INFO:JAVA:* Try:
INFO:JAVA:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
INFO:JAVA:
INFO:JAVA:* Get more help at https://help.gradle.org
INFO:JAVA:
INFO:JAVA:BUILD FAILED in 1m 6s

Ответ одного из администраторов HP C:

В кластере HP C, пожалуйста, будьте осторожны с блокировкой файлов это иногда ненадежно. Например, блокировка файла на / нуля работает только для процессов, работающих на одном вычислительном узле, блокировка файла не будет работать на вычислительном узле. Даже для / home блокировка файла на одном вычислительном узле не будет немедленно доступна с других узлов, сетевых файловых систем.

Я посмотрел вокруг и нашел решения: Кэш В настоящее время он используется другой экземпляр Gradle

Я также пытался использовать gradlew clean build --parallel, но он тоже ничего не делал.

Однако это не сработало. Я думаю, что это из-за того, что на HP C. Этот HP C работает так, что я добавляю задания в очередь с помощью сценария оболочки (bash parent.sh, который запрашивает определенное количество ресурсов c и запускает python parent.py, bash child.sh 1 -> python child.py --id $1 ) и запрашивать ресурсы для каждой работы. Затем, когда HP C сможет выделить ресурсы, запрошенные сценарием оболочки (например, parent), HP C выполнит команду python.

Каждый сценарий python (1 родитель и n детей) будет создавать симуляцию в Java (следовательно, gradle), и родитель будет динамически распределять работу между любыми живыми детьми, пока у родителя не останется работы.

Я могу предоставить ссылки на мой код, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...