世界之窗论坛's Archiver

backfire 发表于 2008-5-13 07:57

假死和memory dump

近几个版本(2.1.x)都出现了不同程度的假死(打开网页时,失去了响应,只能杀进程了。试过感觉解压theworld.exe到新的目录里面,问题依旧。使用环境如下:
1. 操作系统Windows 2003 server (ent) sp2 (已作workstation调整)
2. TW  2.1.2.4 (英文版)
3. IE 7.0.5730.13  (128-bit cipher)
4. 系统内存>4GB
5. 打开的网页,一般有10~30个,每次出问题时,网页并不相同。

今天又假死了,生成了application的memory dump,有近400Mb,大致分析了一下,是shlwapi中出现了APPLICATION_HANG_Orphaned_CriticalSection。 也即多线程创建的临界区,由于该线程异常退出,而成了孤魂野鬼,实际是一种资源的泄露。shlwapi.dll
是UI相关的dll,因此打开新页面的线程,在对连接并下载网页时,如果异常退出,就容易出问题了。查微软的资料只看到在dot NET的应用中,如果Orphaned Critical Section block了一个thread,则程序会出现hang(锁死)的问题,但该问题在.NET framework 1.1中就修复了。。。。

开发组能够查一下创建新tab的代码? 下面是部分的dump 分析:[code]Dl Eid Cid     WaitType
-- --- ------- --------------------------
   7   cf0.e40 Critical Section      

WAIT_CHAIN_COMMAND:  ~7s;k;;

BLOCKING_THREAD:  00000e40

DEFAULT_BUCKET_ID:  APPLICATION_HANG_Orphaned_CriticalSection

PRIMARY_PROBLEM_CLASS:  APPLICATION_HANG_Orphaned_CriticalSection

LAST_CONTROL_TRANSFER:  from 7c827d0b to 7c8285ec

FAULTING_THREAD:  00000007

STACK_TEXT:  
05d5bdbc 7c827d0b 7c83d236 00000150 00000000 ntdll!KiFastSystemCallRet
05d5bdc0 7c83d236 00000150 00000000 00000000 ntdll!NtWaitForSingleObject+0xc
05d5bdfc 7c83d281 00000150 00000004 00000001 ntdll!RtlpWaitOnCriticalSection+0x1a3
05d5be1c 7c82f20c 7c8877a0 17c9abd0 05d5bf30 ntdll!RtlEnterCriticalSection+0xa8
05d5be50 7c82f336 00000000 00000000 05d5be98 ntdll!LdrLockLoaderLock+0x133
05d5becc 7c82f2a3 00000001 00000000 00000000 ntdll!LdrGetDllHandleEx+0x94
05d5bee8 75e68026 00000000 00000000 05d5bf34 ntdll!LdrGetDllHandle+0x18
05d5c0b8 77dac70c 05d5c56c 00000001 05d5c0d0 apphelp!ApphelpCheckShellObject+0x189
05d5c0d8 7c915d4d 05d5c56c 00000000 00000401 shlwapi!SHCoCreateInstanceAC+0x1d
05d5c4bc 7c9113d4 05d5c56c 00000000 00000401 shell32!_SHCoCreateInstance+0x127
05d5c4fc 7c911393 00000000 05d5c56c 00000000 shell32!SHExtCoCreateInstance2+0x41
05d5c51c 7c912e1d 00000000 05d5c56c 00000000 shell32!SHExtCoCreateInstance+0x1e
05d5c580 7c91084d 303f8488 00000000 4635db7c shell32!CRegFolder::_CreateAndInit+0x106
05d5c5a8 7c92c888 303f8488 00000000 4635db7c shell32!CRegFolder::_BindToItem+0x55
05d5c5cc 7c92d7b0 0016de68 303f8488 00000000 shell32!CRegFolder::BindToObject+0x45
05d5c5f0 7c92d825 0016de68 303f8488 00000000 shell32!SHBindToObjectEx+0x3f
05d5c614 7c92d86a 00000000 303f81c0 4635db7c shell32!SHBindToFolderIDListParent+0x26
05d5c630 4641914f 303f81c0 4635db7c 05d5c668 shell32!SHBindToIDListParent+0x18
05d5c658 463ea587 303f81c0 00008000 00000000 ieframe!SHGetNameAndFlagsW+0x31
05d5d6d8 463eacdd 303f81c0 00008000 00000000 ieframe!IEGetNameAndFlagsEx+0xf2
05d5d6f8 463dfd02 303f81c0 05d5e780 00008000 ieframe!IEGetDisplayName+0x1c
05d5d70c 463dedaf 0462341c 303f81c0 05d5e780 ieframe!CBaseBrowser2::IEGetDisplayName+0x13
05d5f7cc 463ded3f 05d5f830 00008000 05d5f7ec ieframe!CIEFrameAuto::_get_Location+0x67
05d5f7dc 4638e821 0496cd4c 05d5f830 05d5f83c ieframe!CIEFrameAuto::get_LocationURL+0x18
05d5f7ec 300b2a0a 045fa1b8 05d5f830 09084bc0 ieframe!CWebBrowserOC::get_LocationURL+0x14
WARNING: Stack unwind information not available. Following frames may be wrong.
05d5f83c 300b5e17 05d5f910 05d5f8e4 ffff027f Flash9d!DllUnregisterServer+0xad11
05d5f8c8 46de233a 09084bc0 77390013 00000000 Flash9d!DllUnregisterServer+0xe11e
05d5f92c 46df922c 05d5f9a8 46df9692 306649a8 mshtml!CTimer::ProcessAdvise+0x110
05d5f934 46df9692 306649a8 05d50013 00000003 mshtml!CTimerSink::OnTimer+0x14
05d5f9a8 46df95a6 05d5f9e4 46db794a 048ba398 mshtml!CTimerCtx::ProcessAdvise+0x161
05d5f9b0 46db794a 048ba398 00000000 00000000 mshtml!CTimerCtx::OnMethodCall+0x17
05d5f9e4 46db13f2 05d5fa7c 46db1341 00000000 mshtml!GlobalWndOnMethodCall+0x101
05d5fa04 7739b6e3 00010470 00000840 00000000 mshtml!GlobalWndProc+0x181
05d5fa30 7739b874 46db1341 00010470 00008002 user32!InternalCallWinProc+0x28
05d5faa8 7739ba92 00000000 46db1341 00010470 user32!UserCallWinProcCheckWow+0x151
05d5fb10 7739bad0 05d5ff54 00000000 05d5ff84 user32!DispatchMessageWorker+0x327
05d5fb20 00483d22 05d5ff54 00000000 01222500 user32!DispatchMessageW+0xf
05d5ff84 77bcb530 03f38388 00000000 00000000 TheWorld+0x83d22
05d5ffb8 77e64829 0121d050 00000000 00000000 msvcrt!_endthreadex+0xa3
05d5ffec 00000000 77bcb4bc 0121d050 00000000 kernel32!BaseThreadStart+0x34

FOLLOWUP_IP:
shlwapi!SHCoCreateInstanceAC+1d
77dac70c 85c0            test    eax,eax

SYMBOL_STACK_INDEX:  8

SYMBOL_NAME:  shlwapi!SHCoCreateInstanceAC+1d

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: shlwapi

IMAGE_NAME:  shlwapi.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  45d70ac0

STACK_COMMAND:  ~7s ; kb

BUCKET_ID:  80000007_shlwapi!SHCoCreateInstanceAC+1d

FAILURE_BUCKET_ID:  APPLICATION_HANG_Orphaned_CriticalSection_80000007_shlwapi.dll!SHCoCreateInstanceAC

Followup: MachineOwner[/code]希望能有帮助。

m1ch23lz 发表于 2008-5-13 09:59

lz高人               
等待官方解释

roc 发表于 2008-5-13 10:48

谢谢楼主的反馈,已经上报给开发组

mutalisker 发表于 2008-5-13 10:53

楼主, 已经给你发站内消息了, 谢谢反馈。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.