2024 Clojure状态调查! 分享您的想法。

欢迎!有关如何使用本网站的更多信息,请参阅关于页面。

+4
tools.deps
重新标记

depes.edn

{:deps {org.deeplearning4j/deeplearning4j-nlp {:mvn/version "1.0.0-M2.1"}}}

在较旧的Clojure版本中曾经出现过,但后来消失了,请参见这里

https://clojurians-log.clojureverse.org/tools-deps/2021-09-16

现在我使用最新的clojure CLI又遇到了这个问题
1.11.1.1200

解决方案仍然是限制下载线程的数量;

clj -Sthreads 1

所以这仅仅在我使用(默认)多线程下载的时候发生。

2 答案

+2

我无法重现此问题,并且有一段时间没有收到关于此类问题的任何报告,因此现在不会创建工单。

by
我在快速网络上也无法复现这个错误。
我将稍后从家里慢速带宽尝试再次复现。
by
通过限制我的工作机器的带宽,我可以复现此问题。

首先运行

sudo wondershaper -a eth0 -d 1024 -u 1024

将下载带宽限制为1MBit/s

然后从最新的Clojure Docker镜像启动clj

docker run -ti clojure clj -Sdeps '{:deps {org.deeplearning4j/deeplearning4j-nlp {:mvn/version "1.0.0-M2.1"}}}'


运行失败,如下


从central下载:com/twelvemonkeys/imageio/imageio-bmp/3.1.1/imageio-bmp-3.1.1.jar
从central下载:org/bytedeco/javacpp/1.5.7/javacpp-1.5.7-linux-arm64.jar
构建类路径时出错。无法获取'artifact:org.bytedeco:leptonica:1.82.0-1.5.7'的写锁
java.lang.IllegalStateException: 无法获取'artifact:org.bytedeco:leptonica:1.82.0-1.5.7'的写锁
        在org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(N
by
谢谢,我认为我理解为什么这个问题又出现了,有一些事情可以查看
0
by
我可以重现这个问题

我在Windows上,使用MSYS下的Posix启动器。安装脚本需要在prefix中指定Windows路径,然后就可以顺利安装了。

我没有在`clj`工具中遇到问题,而是在运行`clojure -M:repl`时出现问题。

在下载过程中某个时刻,下载突然停止。经过长时间的等待后,看到了上面的错误信息。

我的假设是在某个地方存在死锁。与Linux相比,NTFS对文件锁定的要求更为严格。我可能需要在那里检查线程...

上面描述的解决方案解决了我这个问题。
(如果这很重要的话,我在Windows上通过Scoop安装了temurin-19-jdk,并将其bin目录添加到我的路径中。)
噢——我刚刚注意到工单及其进展。感谢你的工作!
在删除".m2"之后,它又出现在org/bytedeco/mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86-redist.jar上(这个文件很大)。
确实,`clj -Sthreads 1`可以解决这个问题。
你好,

我也在这里添加一点,在我的MBP M1上100%可以复现这个问题。

```
构建类路径时出错。无法获取 'artifact:org.apache:apache:25' 的写入锁。
java.lang.IllegalStateException: 无法获取 'artifact:org.apache:apache:25' 的写入锁。
    在 org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:165)
    在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:233)
    在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
...
...
```

```
❯ clj --version
Clojure CLI版本 1.11.1.1413
```

```
❯ java --version
openjdk 20.0.2 2023-07-18
OpenJDK运行时环境 Temurin-20.0.2+9 (构建 20.0.2+9)
OpenJDK 64位服务器VM Temurin-20.0.2+9 (构建 20.0.2+9, 混合模式)
```
by
我已经更新了所有依赖项,这包括一个相当大的跳跃以及许多与Maven解析器相关的锁定更新。我很想知道在你们所有人遇到这些情况时是否有什么不同。这个版本尚未作为稳定版发布,但如果你是Mac用户,可以通过以下方式获取预发布CLI:`brew uninstall clojure` 然后 `brew install clojure/tools/[email protected]`。当然,请删除所有-Sthreads 1的mod。
by
编辑 by
不确定这个是否有帮助,但我今天在最新的Clojure中又遇到了这个问题。
```
2:46:25 错误:从central下载 org.bytedeco.mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86_64-redist.jar
12:46:26 错误:构建类路径时出错。无法获取 'artifact:org.bytedeco:mkl:2020.3-1.5.4' 的写入锁。
12:46:26 错误:java.lang.IllegalStateException: 无法获取 'artifact:org.bytedeco:mkl:2020.3-1.5.4' 的写入锁。
....
```
使用 1.11.3.1456

这个问题是在Docker构建中发生的,所以我在每个容器创建时都可以复现。
通常的修复方法是:"-Sthreads 1"

在此期间,我已经升级了我的互联网连接到光纤,但它仍然会发生......
所以我最初对它只在“慢速网络”中发生的假设是不正确的。
by
在 Clojure 1.12 上问题仍然存在。
有时候仍然如此。

[2024-09-09T21:19:21.048Z] 下载中:从 central 下载 org/bytedeco/mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86-redist.jar
[2024-09-09T21:19:22.032Z] 构建类路径出错。无法获取 'artifact:org.bytedeco:mkl:2020.3-1.5.4' 的写锁。
[2024-09-09T21:19:22.032Z] java.lang.IllegalStateException: 无法获取 'artifact:org.bytedeco:mkl:2020.3-1.5.4' 的写锁
    在 org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:165)
[2024-09-09T21:19:22.032Z]
    在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:233)
    在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
    在 o
by
是的,我已经部分升级到一组新的 Maven 库,我认为这会有所帮助,但这是一个大的改变。
...