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

我无法复现这个问题,而且已经有一段时间没有收到任何关于这个问题的人的报告,所以我目前不会创建工单。

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`时遇到。

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

我的假设是在某个地方有一个死锁。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运行时环境 Temurin-20.0.2+9 (构建 20.0.2+9)
OpenJDK 64位服务器VM Temurin-20.0.2+9 (构建 20.0.2+9,混合模式)
```
我已经更新了所有的依赖,包括在Maven解析器中进行了大量与锁定相关的更新。我想知道是否有人在遇到这些情况时有所差异。这个版本尚未作为稳定版发布,但如果你使用Mac,你可以先使用`brew uninstall clojure`然后`brew install clojure/tools/[email protected]`来获取预发布CLI。当然,请移除任何与-Sthreads 1相关的mod。

编辑了
我不知道这是否有帮助,但我在最新的Clojure中再次遇到了这个问题。
```
2:46:25 错误 下载:org/bytedeco/mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86_64-redist.jar from 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"

同时,我已经将我的互联网连接升级为光纤,但这仍然会发生....
所以我对它在“慢网络”上发生的初步假设是不正确的。
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] 编译classpath时出错。无法获得'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
by
是的,我对一组新的Maven库进行了部分升级,我认为这会有所帮助,但是这是一个大的改变。
...