2006-4-5 15:20发现BUG过程描述 by ffb:
MM <--从此删除
|_EE
|_ UU
|_AA*
以下是本次运行的日志(显示在DebugView中)
00000000 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=134217793 Src=33554432 CptID=268435522 Cmd=CMD_DEL
00000001 15:01:43 [2044] [CS]:[VSOCK] 发送下级命令 Tag=134217793 Src=33554432 CptID=268435522 Cmd=CMD_DEL
00000002 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=67108928 Src=33554432 CptID=134217793 Cmd=CMD_DEL
00000003 15:01:43 [2044] [CS]:[VSOCK] 发送下级命令 Tag=67108928 Src=33554432 CptID=134217793 Cmd=CMD_DEL
00000004 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=16777269 Src=33554432 CptID=67108928 Cmd=CMD_DEL
00000005 15:01:43 [2044] [CS]:[VSOCK] 返送上级应答 Tag=33554432 Src=16777269 CptID=67108928 Cmd=CMD_DISCONN_SUCCESS
00000006 15:01:43 [2044] [CS]:[VSOCK] 返送上级应答 Tag=33554432 Src=16777269 CptID=67108928 Cmd=CMD_DEL_SUCCESS
以下是分析:
1.从任务管理器得知2044是MM的进程ID
2.命令含义:Src让Tag删除CptID;
3.ID含义: 16777269是MM,67108928是EE,134217793是UU,33554432是CC(by ffb),268435522是AAE
//MM收到CC的删除命令
00000000 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=134217793 Src=33554432 CptID=268435522 Cmd=CMD_DEL
//MM向下转发该命令,命令进入MM的VSOCK发送命令缓冲区
00000001 15:01:43 [2044] [CS]:[VSOCK] 发送下级命令 Tag=134217793 Src=33554432 CptID=268435522 Cmd=CMD_DEL
//MM收到CC的又一条删除命令
00000002 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=67108928 Src=33554432 CptID=134217793 Cmd=CMD_DEL
//MM向下转发该命令,命令进入MM的VSOCK发送命令缓冲区
00000003 15:01:43 [2044] [CS]:[VSOCK] 发送下级命令 Tag=67108928 Src=33554432 CptID=134217793 Cmd=CMD_DEL
//MM收到CC的删除EE命令
00000004 15:01:43 [2044] [CS]:[VSOCK] 收到上级命令 Tag=16777269 Src=33554432 CptID=67108928 Cmd=CMD_DEL
//由于EE是MM的下级,所以MM要和EE断开连接,而此时缓冲中的命令尚未发出,MM回复给CC说断开成功(实际此时EE并未收到任何命令,所以EE和UU并未断开)
00000005 15:01:43 [2044] [CS]:[VSOCK] 返送上级应答 Tag=33554432 Src=16777269 CptID=67108928 Cmd=CMD_DISCONN_SUCCESS
//MM回复给CC说删除成功
00000006 15:01:43 [2044] [CS]:[VSOCK] 返送上级应答 Tag=33554432 Src=16777269 CptID=67108928 Cmd=CMD_DEL_SUCCESS
//DebugView中无EE相关的信息,说明EE的VSOCK未收到任何命令
//推论:MM的VSOCK发送命令队列在MM断开和EE的连接之前并未发送给EE,因此导致BUG
//现象:删除之后再添加UU便无法连接,因其和EE的连接并未断开过
//结论:VSOCK模块命令缓冲问题,断开连接时已经缓冲的命令会无法发出
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}