gpt4 book ai didi

windbg - 排除 COM+ 应用程序死锁故障

转载 作者:行者123 更新时间:2023-12-01 13:47:19 24 4
gpt4 key购买 nike

我正在尝试对间歇性死锁的 COM+ 应用程序进行故障排除。上次它锁定时,我能够获取 dllhost 进程的用户模式转储并使用 WinDbg 对其进行分析。在检查了所有线程和锁之后,一切都归结为该线程拥有的临界区:

ChildEBP RetAddr  Args to Child              
0deefd00 7c822114 77e6bb08 000004d4 00000000 ntdll!KiFastSystemCallRet
0deefd04 77e6bb08 000004d4 00000000 0deefd48 ntdll!ZwWaitForSingleObject+0xc
0deefd74 77e6ba72 000004d4 00002710 00000000 kernel32!WaitForSingleObjectEx+0xac
0deefd88 75bb22b9 000004d4 00002710 00000000 kernel32!WaitForSingleObject+0x12
0deeffb8 77e660b9 000a5cc0 00000000 00000000 comsvcs!PingThread+0xf6
0deeffec 00000000 75bb21f1 000a5cc0 00000000 kernel32!BaseThreadStart+0x34

它等待的对象是一个事件:

0:016> !handle 4d4 f
Handle 000004d4
Type Event
Attributes 0
GrantedAccess 0x1f0003:
Delete,ReadControl,WriteDac,WriteOwner,Synch
QueryState,ModifyState
HandleCount 2
PointerCount 4
Name <none>
No object specific information available

据我所知,该事件从未发出信号,导致线程挂起并阻止进程中的其他几个线程。有没有人对接下来的步骤有什么建议来弄清楚发生了什么?

现在,看到这个方法被称为 PingThread,它是否有可能试图 ping 进程中已经死锁的另一个线程?

更新
这实际上是 Oracle 10.2.0.1 客户端中的一个错误。尽管如此,我仍然对如何在不在 Oracle 错误数据库中找到错误的情况下解决这个问题的想法感兴趣。

最佳答案

SIEExtPub可以帮助你找出 COM 中的锁

这里是 article关于这个

如果您在使用此扩展程序时遇到任何问题,请回帖

关于windbg - 排除 COM+ 应用程序死锁故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com