北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 19722|回复: 16

堆栈溢出导致Mud宕机原因总结

[复制链接]
发表于 2009-1-20 00:55:32 | 显示全部楼层 |阅读模式
北侠大约自04年5月以来就一直有宕机频繁的问题,一般也就能支撑1-2天,3天以上很少见。由于一直在windows下跑,debug.log宕机后被自动重启的mudos所覆盖,很难追查原因。
08年底转到linux下后,重新编译了debug版本的mudos,并修改了重启mud的脚本,终于可以保留每次宕机后的debug.log,而且宕机原因也不再是笼统的“FATAL ERROR: Segmentation fault
”了。
于是发现大部分宕机原因是master.c的illegal offset错误。在jason的指导下,通过用gdb调试生成的core,发现真实宕机原因是stack overflow导致的错误,以至于在错误触发master.c的error_handler时,由于堆栈已经溢出,无法正常执行error_handler函数,所以宕机。
最终通过增加mudos中stack的size解决这个问题。堆栈溢出的原因可能是物品增加、函数复杂所导致的需要的堆栈空间也更大了。其实经过持续的观察发现堆栈一直也就在原来的极限值附近转悠,有时候几天也不超限,有时一天就超出了。
特此记录,以后出现类似问题可以作为参考。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 01:04:13 | 显示全部楼层
zeze。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 04:50:03 | 显示全部楼层
原来是这样。
完全看不懂。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 04:58:02 | 显示全部楼层
还是不懂
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 08:24:15 | 显示全部楼层
哈哈,换了linux就是好,就是好啊,就是好!以后北侠一个月重启一次!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 08:33:31 | 显示全部楼层
那岂不是不能当机发丸子了?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 09:51:37 | 显示全部楼层
靠,好深奥啊!wiz万岁!真用心啊!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 10:25:46 | 显示全部楼层
一个字:牛……
这样的原因也查得出来……
换成是我,如果没有仿真器,那是搞不定的……
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-1-20 10:38:08 | 显示全部楼层
既然系统正常了,那么强烈建议取消私人房间内柜子的getout busy!!!!!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-1-20 10:52:58 | 显示全部楼层
你不看news的啊
[2009-01-19 21:38:22] Whuan更新
取消新房getout物品的busy
rt
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-27 10:17 PM , Processed in 0.012942 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表