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

我已经无法复现这个问题,并且在一段时间内没有从其他人那里收到关于这个问题的报告,所以现在不会创建工单。

我既不能在工作上的网络快速环境下,也不能复现这个错误。
我稍后会在家里用低速网络再次尝试。
我可以通过限制我的工作机器的带宽来复现这个错误。

所以首先运行

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
构建classpath时出错。无法获取'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 votes
我可以重现这个问题

我在Windows上,使用MSYS下的Posix启动器。安装脚本需要Windows路径前缀,然后就可以正常安装。

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

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

我的假设是可能存在死锁。NTFS对文件锁定的要求比Linux更严格。我可能要看看线程的相关情况。

上面提到的工作方式可以解决这个问题。
(如果这有关系,我已经通过Scoop在Windows上安装了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%可以复现这个问题。

```
构建classpath时出错。无法获取'artifact:org.apache:apache:25'的写入锁
java.lang.IllegalStateException: 无法获取'artifact: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位服务器虚拟机 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错误:从central下载 org/bytedeco/mkl/2020.3-1.5.4/mkl-2020.3-1.5.4-linux-x86_64-redist.jar
12:46:26错误:构建classpath时出错。无法获取'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
是的,我对Maven库的新版本升级进行了部分工作,我认为这会有帮助,但这是一个很大的变化。
...