用户操作
[即时聊天] [发私信] [加为好友]
jter_007ID:jter_007
2033次访问,排名2万外好友0人,关注者1
jter_007的文章
原创 10 篇
翻译 0 篇
转载 2 篇
评论 1 篇
最近评论
fire_woods:貌似我都练过了.
文章分类
收藏
    相册
    我的摄影
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 【工作案例】由于内存访问侵犯导致中间件异常关闭收藏

    新一篇: 【工作案例】工单答复中存在非法字符导致工单答复存盘失败 | 旧一篇: 【工作案例】由于配置项过长导致部分配置未能读取以致接口无法返回正确信息

     
    标题:*
    由于内存访问侵犯导致中间件异常关闭
    作者:*
    王玲
     现象描述:* 
    某局接口的中间件总是异常关闭,多则一天五六次,少则一两天一次,次数频繁,且无任何规律可言。
     告警信息:*
    1、   查看drwtsn32.log,记录相关信息如下:
    发生应用程序意外错误:
            应用程序: (pid=572)
            时间: 2007-3-7 @ 17:27:43.875
            意外情况编号: c0000005 (访问侵犯)
    ……
    2.通过windbg分析dump信息,显示如下:
    ChildEBP RetAddr Args to Child             
    0157284c 0042260f 0157de14 01157fc9 00000062 MidwareServer!memcpy+0x33
    015afe2c 00421fe9 01157f90 00000062 8324e884 MidwareServer!OnReply+0x1bf (CONV: cdecl) [d:\midwareserver\task\tasklist.cpp @ 768]
    015afec0 00421f21 000ec960 01111cb0 000000b8 MidwareServer!CTaskList::TimerThread+0xb9 (CONV: thiscall) [d:\ midwareserver\task\tasklist.cpp @ 601]
    015aff14 0044cf57 01111d20 0000101b 01111c30 MidwareServer!CTaskList::TimerThread+0x11 (CONV: cdecl) [d:\ midwareserver\task\tasklist.cpp @ 577]
    015aff80 0043667d 000ec960 0000101b 0015ccb0 MidwareServer!_AfxThreadEntry+0xe3 (CONV: stdcall) [thrdcore.cpp @ 112]
    015affb4 77e6987c 01111c30 0000101b 0015ccb0 MidwareServer!_beginthreadex+0xca
    WARNING: Stack unwind information not available. Following frames may be wrong.
    015affec 00000000 0043661e 01111c30 00000000 KERNEL32!SetThreadExecutionState+0x227
     原因分析:*
    分析dump信息得知:在拷贝消息包的输入参数时,误将整个包的长度当成具体的输入数据的长度,而包的长度必然大于输入数据的长度,且数据又处于整个包结构的最后,所以在拷贝时就会拷取紧随消息包之后的一部分内存,而这部分内存地址一旦是受系统保护的内存地址的话,则造成访问侵犯,中间件程序会被系统异常关闭。
     处理过程:*
    1、跟踪大量中间件日志,发现每次异常关闭并无任何特征及其规律可言。
    2、查看事件查看器,发现每次应用程序异常关闭有dump日志记录,分析dump信息后确定问题所在。
    3、修改程序,更新中间件后观察多天,运行正常无任何异常。
     建议与总结: 
    典型的“差之毫厘,失之千里”,以此为诫
     

    发表于 @ 2007年08月16日 16:23:00|评论(loading...)|编辑

    新一篇: 【工作案例】工单答复中存在非法字符导致工单答复存盘失败 | 旧一篇: 【工作案例】由于配置项过长导致部分配置未能读取以致接口无法返回正确信息

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 沉醉东风