SBT强制文件系统锁定,即使在分布式文件系统上也是如此

SBT强制文件系统锁定,即使在分布式文件系统上也是如此,sbt,nfs,lustre,Sbt,Nfs,Lustre,我打算在我们的大学高性能计算集群上运行一个使用SBT的扩展测试套件(它使用Lustre文件系统) 因为我有非常基本的用户权限,所以我只能尝试手动安装并通过提取tarball进行安装 即使使用-Dsbt.boot.lock=false,我也会得到以下堆栈跟踪: java.io.IOException: Function not implemented at sun.nio.ch.FileDispatcherImpl.lock0(Native Method) at sun.nio.c

我打算在我们的大学高性能计算集群上运行一个使用SBT的扩展测试套件(它使用Lustre文件系统)

因为我有非常基本的用户权限,所以我只能尝试手动安装并通过提取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
问题在于Lustre和NFS等并行分布式文件系统没有实现
lock0
,但SBT似乎依赖于它

无法在高性能群集上运行测试套件是一个巨大的劣势,因为在我的英特尔i5 7200 rpm硬盘笔记本电脑(这是我唯一的选择)上运行测试套件至少需要6个小时。除了分布式文件系统之外,我没有访问任何文件系统的权限,因此将引导目录放在其他地方不是一个选项

我本打算将此作为一个问题提交,但社区指南表明,对于这种特殊问题,在StackOverflow上发布问题是一个更好的选择


最后我在笔记本电脑上运行了一夜测试,但我对此不太满意。除非此问题得到解决,否则我将无法继续使用SBT进行基于参与者的测试研究。

您需要使用
-o flock
装载客户端,以启用分布式锁定。

>我本来打算在GitHub上提交此问题,但社区指南表明,针对这种特殊问题,在StackOverflow上发布问题是更好的选择。请随意打开Github问题以获取功能请求和bug报告。现在有了这样的理由-