请在2024 Clojure 状态调查中分享您的看法!

欢迎!请参阅关于页面以获取更多关于如何使用该平台的详细信息。

+4
工具依赖
重标记

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

我无法重现这个问题,而且在此事发生一段时间后,还没有收到任何人的报告,所以现在不会为此创建工单。

无论是在工作场所还是在快速网络环境下,我都无法复现这个问题。
稍后,我会从家中尝试,届时网速较慢。
通过限制我的工作机的带宽,我能够复现这个问题。

所以首先运行

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
从中央库下载: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' 的写锁
        at org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(N
谢谢,我想我已经明白为什么这个问题又出现了,有一些东西需要检查。
0 投票
我可以重现这个

我使用Windows上的Posix启动器。安装脚本要求设置Windows路径,然后一切就绪。

在有`clj`工具的情况下我没有这个问题,而是在执行`clojure -M:repl`时。

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

我的假设是,这里存在一个死锁。NTFS比Linux更挑剔地处理文件锁定。我可能需要在那里以及线程上查找。

上面描述的解决方案为我解决了这个问题。
(如果这有关系,我在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 Runtime Environment Temurin-20.0.2+9 (build 20.0.2+9)
OpenJDK 64-Bit Server VM Temurin-20.0.2+9 (build 20.0.2+9, mixed mode)
```
我已经调整了所有依赖项,包括Maven解析器中的许多与之相关的更新,非常想了解你们所有人在这方面有何不同。这个版本尚未作为稳定版发布,但如果你在Mac上,可以先 `brew uninstall clojure` 然后 `brew install clojure/tools/[email protected]` 来获取预发布CLI。当然,请移除所有针对 -Sthreads 1 的修改。

编辑
不知道这是否有帮助,但我今天在最新的Clojure again遇到了这个问题。
```
2:46:25 错误 下载:org.bytedeco.mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86_64-redist.jar 从 central
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' 的写入锁
    在 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)
    at o
是的,我对 Maven 库的新版本进行了部分升级,我认为这会有所帮助,但这是一项重大变更。
欢迎来到 Clojure Q&A,在这里您可以向 Clojure 社区成员提问并获得答案。
...