QUICK_FIX.md 2.8 KB

🚨 DataOps Platform 启动失败快速修复

问题现象

[ERROR] dataops-platform 重启失败!
tail: cannot open '/opt/dataops-platform/logs/gunicorn_error.log' for reading: No such file or directory

🔧 快速修复(3 步)

在服务器上执行以下命令:

# 1. 上传最新代码到服务器
# (在本地执行,或使用 git pull)

# 2. 进入脚本目录
cd /opt/dataops-platform/scripts

# 3. 运行自动修复脚本
sudo chmod +x fix_startup.sh
sudo ./fix_startup.sh

✅ 如果修复成功

你会看到:

✓ dataops-platform 启动成功!
✓ 健康检查通过! HTTP 状态码: 200
访问地址: http://localhost:5500

❌ 如果修复失败

方案 A: 查看详细诊断

cd /opt/dataops-platform/scripts
sudo chmod +x diagnose_issue.sh
sudo ./diagnose_issue.sh

方案 B: 查看错误日志

# 最重要的日志(通常能看到真正的错误)
sudo tail -50 /var/log/supervisor/dataops-platform-stderr.log

方案 C: 手动修复核心问题

最可能的原因是缺少时区数据(因为我们刚添加了 zoneinfo 模块):

# 安装时区数据
sudo apt-get update
sudo apt-get install -y tzdata

# 创建日志目录
sudo mkdir -p /opt/dataops-platform/logs
sudo chown ubuntu:ubuntu /opt/dataops-platform/logs

# 重启服务
sudo supervisorctl restart dataops-platform

# 查看状态
sudo supervisorctl status dataops-platform

📋 验证修复

# 1. 检查服务状态(应该显示 RUNNING)
sudo supervisorctl status dataops-platform

# 2. 测试健康检查接口
curl http://localhost:5500/api/system/health

# 3. 测试时区功能
cd /opt/dataops-platform
source venv/bin/activate
python -c "from app.core.common.timezone_utils import now_china_naive; print('当前东八区时间:', now_china_naive())"

🔍 根本原因

我们最近的代码修改引入了 zoneinfo 模块用于处理东八区时间。

重要:

  • Python 3.9+ 使用标准库 zoneinfo
  • Python 3.8 需要使用 backports.zoneinfo
  • 两者都需要系统安装 tzdata

修改的文件:

  • app/core/common/timezone_utils.py - 新增的时区工具模块(已兼容 Python 3.8)
  • app/models/data_product.py - 使用东八区时间
  • app/models/metadata_review.py - 使用东八区时间
  • 其他服务层文件

📞 需要帮助?

如果以上方法都无法解决,请提供:

  1. 诊断输出:

    cd /opt/dataops-platform/scripts
    sudo ./diagnose_issue.sh > ~/diagnosis.log 2>&1
    cat ~/diagnosis.log
    
    1. 错误日志: bash sudo tail -100 /var/log/supervisor/dataops-platform-stderr.log

📚 详细文档

查看完整的故障排查指南:

cat /opt/dataops-platform/scripts/TROUBLESHOOTING.md