Я намеревался запустить обширный набор тестов, использующих SBT, в нашем высокопроизводительном вычислительном кластере университета (он использует файловую систему Lustre).
Поскольку у меня очень простые пользовательские привилегии, я смог только попробовать установить вручную и установить, распаковав архив.
Даже с -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
Проблема в том, что параллельные распределенные файловые системы, такие как Lustre и NFS, не реализуют lock0
, но SBT, похоже, полагается на него.
Невозможность запуска набора тестов на высокопроизводительном кластере является огромным недостатком, поскольку запуск набора тестов на моем ноутбуке Intel i5 с жестким диском 7200 об/мин занимает не менее 6 часов (это моя единственная альтернатива). У меня нет доступа к какой-либо файловой системе, кроме распределенной файловой системы, поэтому размещение загрузочного каталога в другом месте не является вариантом.
Я намеревался отправить это как проблему на GitHub, но в правилах сообщества указано, что размещение вопроса на StackOverflow — лучший вариант для решения этой конкретной проблемы.
В итоге я провел тесты всю ночь на своем ноутбуке, но я не очень доволен этим. Если это не будет исправлено, я не смогу продолжать использовать SBT для своего исследования тестирования на основе актеров.