Contact Information
No response
1Panel Version
专业版 v2.2.4
Problem Description
[Bug] OpenResty 更新拉取失败后容器异常,重建后监控 SQLite 数据库损坏
1Panel 版本
专业版 v2.2.4
OpenResty 版本
- 更新前版本:1panel/openresty:1.27.1.2-5-1-focal
- 目标版本:1panel/openresty:1.31.1.1-2-1-noble
- 操作系统:Debian 12
- 使用场景:1Panel 专业版,企业生产环境
- 镜像配置:使用 1ms 镜像加速服务
问题描述
2026 年 7 月 29 日,我在 1Panel 应用商店中点击 OpenResty 的更新按钮。更新期间镜像拉取速度较慢,随后面板提示更新失败。
更新失败后,OpenResty 容器出现异常,现象与 #11671 基本一致。网站一度无法访问,生产服务中断约 10 分钟。后来我在面板中点击了重建,容器才恢复运行。
容器恢复后,OpenResty 开始持续输出以下错误:
[lua] monitor_task.lua:361: insert_monitor_data(): insert_site_req_log error: database disk image is malformed, context: ngx.timer
该错误会由定时任务重复输出,短时间内产生大量相同日志。
我检查了 1Panel WAF 数据目录下的全部 SQLite 数据库。除以下文件外,其余数据库执行 PRAGMA quick_check 均返回 ok:
/opt/1panel/apps/openresty/openresty/1pwaf/data/db/monitor/<domain>/site_req_logs.db
该文件返回:
database disk image is malformed
最终的临时处理方式是备份并改名损坏的 site_req_logs.db,然后对 OpenResty 执行平滑 reload。程序重新创建数据库后,错误消失。
复现过程
- OpenResty 已通过 1Panel 部署并承载线上网站。
- Docker 配置了 1ms 镜像加速服务。
- 在 1Panel 应用商店点击 OpenResty 更新。
- 镜像拉取较慢,更新最终提示失败。
- OpenResty 容器进入异常状态,网站无法访问。
- 在面板中点击重建后,容器和网站恢复。
- OpenResty 日志开始持续出现
database disk image is malformed。
- 检查确认
<domain>/site_req_logs.db 已损坏。
目前无法确认数据库损坏发生在更新、容器重建还是数据库迁移阶段,但时间上与本次更新失败直接相邻。
实际影响
- 生产网站中断约 10 分钟。
- 更新失败后没有自动恢复到原有可用版本。
- 用户需要自行尝试重建容器才能恢复服务。
- WAF 监控数据库损坏并持续刷错误日志。
- 面板没有指出具体损坏文件,也没有提供自动修复入口。
- 1个小时就产生了30g的数据垃圾报错日志, 如果不及时跟进。 很快硬盘应该满了就宕机了;
期望行为
希望 OpenResty 更新流程增加以下保护:
- 完整拉取并校验新镜像后,再停止或替换旧容器。
- 镜像拉取、容器创建或健康检查失败时,自动恢复旧容器和旧版本。
- 更新涉及 WAF 或监控数据库时,提前备份并执行完整性检查。
- 更新失败时保留可用容器,不要让生产服务停留在容器缺失或不可用状态。
- 面板提供更明确的错误信息,至少能区分镜像拉取失败、容器创建失败和数据库损坏。
- 对仅保存监控日志的损坏数据库,提供备份后自动重建的修复选项。
相关 Issue
- #11671:OpenResty 更新失败后提示容器不存在,点击重建后恢复,与本次更新阶段的症状接近。
- #10743:记录了完全相同的
insert_site_req_log error: database disk image is malformed 错误。
#10743 已被关闭,但从本次情况看,相同问题仍然可能发生。希望维护团队能够说明该问题此前的处理结论,以及当前版本是否已经包含对应修复。
补充说明
我购买了 1Panel 专业版,并将其用于公司的生产环境。对生产用户来说,面板中的更新按钮应当具备基本的失败回滚和数据保护能力。
我理解第三方镜像加速服务的速度或可用性不完全由 1Panel 控制,但拉取失败是部署系统必须处理的常见情况。新镜像尚未准备完成时,旧容器应继续提供服务;后续步骤失败时,也应能够自动回滚。
这次故障最终可以通过重建容器和重建监控数据库解决,但排查过程依赖较多人工操作。作为专业版用户,我对这次更新体验确实比较失望,也希望团队不要将它简单归为卸载重装即可解决的个例。请协助确认更新流程是否存在时序、回滚或数据库迁移方面的问题。
最重要的是通过两个相关 issue 的处理态度, 让我对贵司在企业级应用领域的准备产生担忧
The expected correct result
No response
Related log output
Additional Information
No response
Contact Information
No response
1Panel Version
专业版 v2.2.4
Problem Description
[Bug] OpenResty 更新拉取失败后容器异常,重建后监控 SQLite 数据库损坏
1Panel 版本
专业版 v2.2.4
OpenResty 版本
问题描述
2026 年 7 月 29 日,我在 1Panel 应用商店中点击 OpenResty 的更新按钮。更新期间镜像拉取速度较慢,随后面板提示更新失败。
更新失败后,OpenResty 容器出现异常,现象与 #11671 基本一致。网站一度无法访问,生产服务中断约 10 分钟。后来我在面板中点击了重建,容器才恢复运行。
容器恢复后,OpenResty 开始持续输出以下错误:
该错误会由定时任务重复输出,短时间内产生大量相同日志。
我检查了 1Panel WAF 数据目录下的全部 SQLite 数据库。除以下文件外,其余数据库执行
PRAGMA quick_check均返回ok:该文件返回:
最终的临时处理方式是备份并改名损坏的
site_req_logs.db,然后对 OpenResty 执行平滑 reload。程序重新创建数据库后,错误消失。复现过程
database disk image is malformed。<domain>/site_req_logs.db已损坏。目前无法确认数据库损坏发生在更新、容器重建还是数据库迁移阶段,但时间上与本次更新失败直接相邻。
实际影响
期望行为
希望 OpenResty 更新流程增加以下保护:
相关 Issue
insert_site_req_log error: database disk image is malformed错误。#10743 已被关闭,但从本次情况看,相同问题仍然可能发生。希望维护团队能够说明该问题此前的处理结论,以及当前版本是否已经包含对应修复。
补充说明
我购买了 1Panel 专业版,并将其用于公司的生产环境。对生产用户来说,面板中的更新按钮应当具备基本的失败回滚和数据保护能力。
我理解第三方镜像加速服务的速度或可用性不完全由 1Panel 控制,但拉取失败是部署系统必须处理的常见情况。新镜像尚未准备完成时,旧容器应继续提供服务;后续步骤失败时,也应能够自动回滚。
这次故障最终可以通过重建容器和重建监控数据库解决,但排查过程依赖较多人工操作。作为专业版用户,我对这次更新体验确实比较失望,也希望团队不要将它简单归为卸载重装即可解决的个例。请协助确认更新流程是否存在时序、回滚或数据库迁移方面的问题。
最重要的是通过两个相关 issue 的处理态度, 让我对贵司在企业级应用领域的准备产生担忧
The expected correct result
No response
Related log output
Additional Information
No response