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
通过限制我的工作机器的带宽,我可以重现此问题。

因此首先运行

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"}}}'


失败,因为


正在下载: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 从 central
构建类路径出错。无法获取'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
by
我可以重现这个问题

我在 Windows 上,使用 MSYS 下的 Posix 启动程序。安装脚本需要 Windows 路径在 prefix,然后它就毫无问题地安装了。

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

在某些时候下载过程中,下载会停止。长时间等待后,我会收到上面的错误消息。

我的假设是某个地方存在死锁。 与Linux系统相比,NTFS对于文件加锁的限制要严格得多。 我可能会在那里查找,同时也会关注线程...

上面提到的解决方案已经为我解决了这个问题。
by
(如果这有关系的话,我在Windows上通过Scoop安装了temurin-19-jdk并将其bin目录添加到我的路径中。)
by
哦,我刚刚注意到工单及其进展。 感谢你对这个问题的努力工作!
by
只是补充一下,我在删除 ".m2" 之后又遇到了这个问题,它再次出现在 org/bytedeco/mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86-redist.jar(这个文件很大)上
并且确实 "clj -Sthreads 1" 解决了这个问题。
by
你好,

在这里我也遇到了这个问题,在我的MBP M1上每次都能复制出来。

```
构建classpath时出错。 无法为新'target': org.apache:apache:25 获取写锁
java.lang.IllegalStateException: 无法为新 'target': org.apache:apache:25 获取写锁
    at org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:165)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:233)
    at 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,混合模式)
```
我不知道这有没有帮助,但我在最新的 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"。

在此期间,我已经将我的互联网连接升级到光纤,但问题仍然存在...
所以,我对“在低速网络中发生”的初始假设是不正确的。
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' 的写锁
    at org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:165)
[2024-09-09T21:19:22.032Z]
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:233)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
    at o
by
是的,我已经对一组新的Maven库进行了部分升级,我认为这会有所帮助,但这是一个巨大的变化。
...