We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7e7e195 commit 3f7acd3Copy full SHA for 3f7acd3
src/coreclr/vm/syncblk.cpp
@@ -237,6 +237,14 @@ inline WaitEventLink *ThreadQueue::DequeueThread(SyncBlock *psb)
237
238
if (pLink)
239
{
240
+ // Sometimes the SList is corrupted causing the EE to deadlock as referenced in /dotnet/runtime/issues/115794
241
+ // When that happens managed threads will remain in a suspended state causing the application to hang
242
+ // indefinitely.
243
+ // To mitigate this issue, when the next link points to itself, de-reference the next link
244
+ // TODO : find which code is responsible for allowing the situation to happen
245
+ if ( psb->m_Link.m_pNext == pLink->m_pNext)
246
+ pLink->m_pNext = NULL;
247
+
248
psb->m_Link.m_pNext = pLink->m_pNext;
249
#ifdef _DEBUG
250
pLink->m_pNext = (SLink *)POISONC;
0 commit comments