SBT принудительно блокирует файловую систему, даже в распределенных файловых системах

Я намеревался запустить обширный набор тестов, который использует SBT на нашем высокопроизводительном вычислительном кластере университета (он использует файловую систему Luster).

Поскольку у меня есть базовые пользовательские привилегии, я смог попробовать установить только вручную и установить, распаковав tarball.

Даже с -Dsbt.boot.lock=falseЯ получаю следующую трассировку стека:

java.io.IOException: Function not implemented
    at sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
    at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:89)
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1024)
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:1154)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:86)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
    at xsbt.boot.Using$.withResource(Using.scala:10)
    at xsbt.boot.Using$.apply(Using.scala:9)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at xsbt.boot.Launch.locked(Launch.scala:238)
    at xsbt.boot.Launch.app(Launch.scala:147)
    at xsbt.boot.Launch.app(Launch.scala:145)
    at xsbt.boot.Launch$.run(Launch.scala:102)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:18)
    at xsbt.boot.Boot$.runImpl(Boot.scala:41)
    at xsbt.boot.Boot$.main(Boot.scala:17)
    at xsbt.boot.Boot.main(Boot.scala)
Error during sbt execution: java.io.IOException: Function not implemented

Проблема в том, что параллельные распределенные файловые системы, такие как Luster и NFS, не реализуют lock0, но SBT, кажется, полагается на это.

Отсутствие возможности запускать мой набор тестов в высокопроизводительном кластере является огромным недостатком, поскольку для запуска набора тестов на моем жестком диске Intel i5, 7200 об / мин, требуется не менее 6 часов (что является моей единственной альтернативой). У меня нет доступа к какой-либо файловой системе, кроме распределенной файловой системы, поэтому размещение загрузочного каталога в другом месте не вариант.

Я намеревался представить это как проблему на GitHub, но рекомендации сообщества показывают, что размещение вопроса в Stackru является лучшим вариантом для решения этой конкретной проблемы.

Я закончил тестирование на своем ноутбуке в одночасье, но я не очень доволен этим. Если это не будет исправлено, я не смогу продолжать использовать SBT для своих исследований по тестированию на основе актеров.

1 ответ

Вам необходимо смонтировать клиент с -o flock для того, чтобы включить распределенную блокировку.

Другие вопросы по тегам