Board logo

标题: [BUG反馈] 假死和memory dump [打印本页]

作者: 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 分析:
  1. Dl Eid Cid     WaitType
  2. -- --- ------- --------------------------
  3.    7   cf0.e40 Critical Section      

  4. WAIT_CHAIN_COMMAND:  ~7s;k;;

  5. BLOCKING_THREAD:  00000e40

  6. DEFAULT_BUCKET_ID:  APPLICATION_HANG_Orphaned_CriticalSection

  7. PRIMARY_PROBLEM_CLASS:  APPLICATION_HANG_Orphaned_CriticalSection

  8. LAST_CONTROL_TRANSFER:  from 7c827d0b to 7c8285ec

  9. FAULTING_THREAD:  00000007

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

  52. FOLLOWUP_IP:
  53. shlwapi!SHCoCreateInstanceAC+1d
  54. 77dac70c 85c0            test    eax,eax

  55. SYMBOL_STACK_INDEX:  8

  56. SYMBOL_NAME:  shlwapi!SHCoCreateInstanceAC+1d

  57. FOLLOWUP_NAME:  MachineOwner

  58. MODULE_NAME: shlwapi

  59. IMAGE_NAME:  shlwapi.dll

  60. DEBUG_FLR_IMAGE_TIMESTAMP:  45d70ac0

  61. STACK_COMMAND:  ~7s ; kb

  62. BUCKET_ID:  80000007_shlwapi!SHCoCreateInstanceAC+1d

  63. FAILURE_BUCKET_ID:  APPLICATION_HANG_Orphaned_CriticalSection_80000007_shlwapi.dll!SHCoCreateInstanceAC

  64. Followup: MachineOwner
复制代码
希望能有帮助。
作者: m1ch23lz    时间: 2008-5-13 09:59

lz高人               
等待官方解释
作者: roc    时间: 2008-5-13 10:48

谢谢楼主的反馈,已经上报给开发组
作者: mutalisker    时间: 2008-5-13 10:53

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




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2