版本:17.46.22
症状:dllhost(iis out of pooling attach的那个)内存使用持续上涨。
通过抓dump文件,我们发现:
Function Source Destination
vbscript+115e vbscript
vbscript!DllGetClass
Object+74 vbscript
RavScrCh!DllGetClass
Object+b2 vbscript!DllGetClass
Object OLE32!CClassCache::CDllPathEntry::DllGetClass
Object+35
OLE32!CClassCache::CDllFnPtrMoniker::BindTo
Object+166 OLE32!CClassCache::CDllPathEntry::DllGetClass
Object OLE32!CClassCache::SearchForLoadedClass+71
OLE32!ICoCreateInstanceEx+c9 OLE32!CClassCache::SearchForLoadedClass
OLE32!CoCreateInstanceEx+2b OLE32!ICoCreateInstanceEx
OLE32!CoCreateInstance+35 OLE32!CoCreateInstanceEx
asp!CActiveScriptEngine::Init+a9
asp!CScriptManager::GetEngine+1d9 asp!CActiveScriptEngine::Init
asp!AllocAndLoadEngines+171 asp!CScriptManager::GetEngine
asp!ExecuteRequest+147 asp!AllocAndLoadEngines
asp!Execute+17e asp!ExecuteRequest
asp!CHitObj::ViperAsyncCallback+452 asp!Execute
asp!CViperAsyncRequest::OnCall+3f asp!CHitObj::ViperAsyncCallback
comsvcs!STAActivityWorkHelper+a .\stathred.cpp @ 1384
OLE32!EnterForCallback+6a
OLE32!SwitchForCallback+12f OLE32!EnterForCallback
OLE32!PerformCallback+50 OLE32!SwitchForCallback
OLE32!C
ObjectContext::InternalContextCallback+10d OLE32!PerformCallback
OLE32!C
ObjectContext::DoCallback+1a
comsvcs!STAActivityWork::DoWork+75 ..\inc\STAThred.h @ 353
comsvcs!STAThread::STAThreadWorker+2fa .\stathred.cpp @ 590
comsvcs!STAThread::STAThreadWorker+353 .\stathred.cpp @ 614
KERNEL32!BaseThreadStart+52
或者:
Function Source Destination
NTDLL!RtlpAllocateDebugInfo+63 NTDLL!RtlAllocateHeap
NTDLL!RtlInitializeCriticalSectionAndSpinCount+6a NTDLL!RtlpAllocateDebugInfo
NTDLL!RtlInitializeCriticalSection+b NTDLL!RtlInitializeCriticalSectionAndSpinCount
RavScrCh!DllUnregisterServer+8c1
OLE32!CreateInprocInstanceHelper+1a
OLE32!ICoCreateInstanceEx+134 OLE32!CreateInprocInstanceHelper
OLE32!CoCreateInstanceEx+2b OLE32!ICoCreateInstanceEx
OLE32!CoCreateInstance+35 OLE32!CoCreateInstanceEx
asp!CActiveScriptEngine::Init+a9
asp!CScriptManager::GetEngine+1d9 asp!CActiveScriptEngine::Init
asp!AllocAndLoadEngines+171 asp!CScriptManager::GetEngine
asp!ExecuteRequest+147 asp!AllocAndLoadEngines
asp!Execute+17e asp!ExecuteRequest
asp!CHitObj::ViperAsyncCallback+452 asp!Execute
asp!CViperAsyncRequest::OnCall+3f asp!CHitObj::ViperAsyncCallback
comsvcs!STAActivityWorkHelper+a .\stathred.cpp @ 1384
OLE32!EnterForCallback+6a
OLE32!SwitchForCallback+12f OLE32!EnterForCallback
OLE32!PerformCallback+50 OLE32!SwitchForCallback
OLE32!C
ObjectContext::InternalContextCallback+10d OLE32!PerformCallback
OLE32!C
ObjectContext::DoCallback+1a
comsvcs!STAActivityWork::DoWork+75 ..\inc\STAThred.h @ 353
comsvcs!STAThread::STAThreadWorker+2fa .\stathred.cpp @ 590
comsvcs!STAThread::STAThreadWorker+353 .\stathred.cpp @ 614
我们目前还不确定,这个泄露是否和ravscrch替代了vbscript.dll相关?因为上述callstack中也包含了vbscript的信息。
请技术人员帮我们看一下,谢谢!(如需要完整的callstack信息和原始的dump文件,可以mail联系我)
我的联系方式:juqiang@langchao.com