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

XRAY Database Sync疑似卡住问题排查求助

Xray数据库同步卡住的排查与解决

问题概述

导航至XRAY -> 设置 -> 数据库同步页面时,进度疑似卡住,5分钟内无任何进展;已尝试暂停/重启同步、重启Xray和Artifactory有状态集,均无效。各容器日志显示worker已完成任务处理,但同步进度无更新。环境信息:Artifactory 7.19.13,Xray 3.26.1,PostgreSQL数据库。

可能原因

  • 消息队列异常:同步依赖的消息队列(如RabbitMQ)存在未消费消息、死信堆积,或任务消息未正确触发后续流程。
  • PostgreSQL锁冲突/任务残留:同步过程中数据库表被长期锁定,或未完成的任务记录残留,导致后续同步步骤无法推进。
  • 版本兼容性问题:Artifactory与Xray版本不匹配,导致同步流程逻辑中断。
  • 同步状态记录异常:数据库中同步任务的状态表数据错误,前端页面显示的进度与实际后台状态不一致。

解决办法

1. 检查并清理消息队列

  • 登录JFrog平台的消息队列管理界面(如RabbitMQ Management),查看persist、analysis、indexer相关队列的消息堆积情况,以及死信队列的内容。
  • 若存在死信堆积,可清理死信队列的消息;若队列有未消费消息,确认消费者是否正常运行,必要时重置相关队列。

2. 排查数据库锁与任务残留

  • 连接PostgreSQL数据库,执行以下SQL查询锁等待情况:
SELECT pid, relname, mode, granted FROM pg_locks JOIN pg_class ON pg_locks.relation = pg_class.oid WHERE NOT granted;
  • 若发现长期等待的锁,找到对应PID并终止进程:
SELECT pg_terminate_backend(<pid>);
  • 查询Xray同步相关表(如xray_sync_jobs、persist_tasks),删除状态异常的未完成任务记录(操作前建议备份数据库)。

3. 验证版本兼容性

  • 核对JFrog官方版本矩阵,确认Artifactory 7.19.13与Xray 3.26.1是否兼容。若存在版本不匹配,升级至官方推荐的兼容版本组合。

4. 重置同步任务状态

  • 使用Xray API重置同步任务(需具备管理员权限):
curl -X POST -u admin:<password> https://<xray-url>/xray/api/v1/sync/reset
  • 重置后重新启动数据库同步,观察进度是否恢复正常。

5. 查看详细同步日志

  • 查看Xray服务器本地的同步日志文件(路径通常为/var/opt/jfrog/xray/logs/sync.log),查找是否有组件处理失败、数据库写入错误等详细异常信息,定位具体卡点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:10:27