使用.modify money命令后Docker版AzerothCore的worldserver重启如何解决
Docker版AzerothCore执行
.modify money触发段错误问题排查与解决 对应错误日志如下:
/azerothcore/apps/startup-scripts/simple-restarter: line 70: 76 Segmentation faultexit code: 139worldserver terminated, restarting...
排查步骤
- 核查近期操作记录,确认是否做过镜像更新、核心配置修改、自定义模块安装、SQL数据改动操作,段错误(exit code 139)本质为内存访问异常,多数由代码逻辑错误、依赖冲突、数据损坏三类问题导致。
- 开启core dump日志采集:修改容器启动参数,移除自动重启配置,新增
--cap-add=SYS_PTRACE --ulimit core=-1启动参数,触发崩溃后提取core dump文件,可定位到具体崩溃的代码行。 - 验证崩溃触发范围:对不同状态的玩家(在线/离线、正常账号/异常账号)分别执行
.modify money命令,确认是全局必现崩溃,还是仅针对特定玩家数据触发崩溃。 - 核查版本代码记录:确认当前使用的rev. ea764812d14a+版本是否有gm命令相关的未经过完整测试的代码提交,排查是否为版本自带bug。
解决方法
- 若为版本更新后出现的问题,直接回滚到此前命令可正常运行的镜像版本即可恢复使用;若为本地自行构建的镜像,回滚代码到对应正常commit后重新构建即可。
- 若确认是版本自带的官方bug,可手动合并官方对应修复补丁到本地代码,或临时替换
.modify money命令的实现逻辑,重新构建镜像后生效。 - 若为自定义模块冲突导致的问题,逐个禁用近期新增的自定义模块重新构建测试,定位到冲突模块后修复模块代码即可。
- 若为特定玩家数据损坏触发的崩溃,核查
characters库中对应玩家的相关数据条目,修复损坏字段后即可正常执行命令。
内容的提问来源于stack exchange,提问作者Arnau Castellví
相关产品推荐
相关产品推荐

