You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nexus 3 Docker容器升级后用户偏好无法锁定警告问题求助

Nexus 3.40.1 Docker镜像升级后java.util.prefs锁警告问题处理

问题背景

通过Docker运行Sonatype Nexus 3,启动命令如下:

docker run -d -p 80:8081 --ulimit nofile=65536:65536 --name nexus -v nexus-data:/nexus-data -e INSTALL4J_ADD_VM_PARAMS="-Xms4g -Xmx4g -XX:MaxDirectMemorySize=6717m  -Djava.util.prefs.userRoot=${NEXUS_DATA}/javaprefs" sonatype/nexus3

从3.30.0版本升级到3.40.1后,每30秒会触发一次如下警告:

2022-07-18 13:14:45,860+0000 WARN  [Timer-0] *SYSTEM java.util.prefs - Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
2022-07-18 13:15:15,860+0000 WARN  [Timer-0] *SYSTEM java.util.prefs - Could not lock User prefs.  Unix error code 2.

已尝试以下操作但问题未解决:

  • 检查/nexus-data/javaprefs目录,未发现锁文件
  • 删除该目录后,Nexus未自动重建,警告依旧出现
  • 按官方Docker仓库说明全新安装、更换操作系统(Linux/Windows Docker Desktop)、有无挂载数据卷,问题均复现,判断为新版本Bug

解决建议

1. 屏蔽java.util.prefs警告日志

如果暂时无法修复Bug,可通过修改Nexus日志配置屏蔽该警告:

  • 进入Nexus容器:docker exec -it nexus /bin/bash
  • 编辑日志配置文件:vi /opt/sonatype/nexus/etc/logback/logback.xml
  • 在<configuration>节点内添加如下配置:
<logger name="java.util.prefs" level="ERROR"/>
  • 重启Nexus容器:docker restart nexus
    此配置将java.util.prefs的日志级别提升至ERROR,从而过滤掉WARN级别的警告信息。

2. 临时回退版本

若警告影响日志可读性或业务排查,可临时回退到3.30.0版本:

docker stop nexus && docker rm nexus
docker run -d -p 80:8081 --ulimit nofile=65536:65536 --name nexus -v nexus-data:/nexus-data -e INSTALL4J_ADD_VM_PARAMS="-Xms4g -Xmx4g -XX:MaxDirectMemorySize=6717m  -Djava.util.prefs.userRoot=${NEXUS_DATA}/javaprefs" sonatype/nexus3:3.30.0

3. 关注官方修复进度

由于问题在多环境复现,属于新版本Bug,可等待Sonatype官方发布修复版本。

问题严重程度说明

目前该警告仅为日志层面提示,未发现影响Nexus核心功能(仓库管理、构件上传下载等),可暂时屏蔽警告继续使用,但建议持续关注官方修复动态。

内容的提问来源于stack exchange,提问作者shaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:15:39