You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What's happening is a self-deadlock on the G calling SetGCPercent.
G calls SetGCPercent,
...which grabs the heap lock,
...then calls into gcSetTriggerRatio,
...which calls into gcPaceScavenger (new in 1.13),
...which is just enough to tip the G into requiring more stack space,
...and there's no free stack space of that size,
...which means that it tries to allocate a new stack from mheap,
...thereby trying to grab the heap lock, which it already owns.
SetGCPercent is just incorrect. It should only grab the heap lock on the system stack.
What's surprising to me here is that this wasn't happening before. I guess calls to SetGCPercent are just rare enough that they don't trigger a morestack?
mknyszek
changed the title
runtime/debug: TestReadGCStats freezing on AIX
runtime/debug: SetGCPercent grabs heap lock on G leading to potential self-deadlock
May 17, 2019
The first failure on the dashboard is
https://build.golang.org/log/b3defcc2b2f4353229022a8bc9c810b2b1f5d37e
But it might have occur before as runtime tests were failing, runtime/debug tests weren't run.
It is freezing during a copystack. Using stackDebug variable, I've this kind of trace.
@mknyszek is it related to #31966 or similar issues ?
The text was updated successfully, but these errors were encountered: