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
I believe #2096 introduced a rare goroutine deadlock in M3DB. There are new nested read locks in the tickAndExpire->BlockStatesSnapshot path. If first read lock in tickAndExpire is acquired and another goroutine wants to acquire a write lock it will make the tick goroutine block on acquiring nested read lock and prevent it from releasing the first one, therefore ending in a deadlock.
I believe #2096 introduced a rare goroutine deadlock in M3DB. There are new nested read locks in the
tickAndExpire
->BlockStatesSnapshot
path. If first read lock intickAndExpire
is acquired and another goroutine wants to acquire a write lock it will make the tick goroutine block on acquiring nested read lock and prevent it from releasing the first one, therefore ending in a deadlock.https://github.com/m3db/m3/blob/master/src/dbnode/storage/shard.go#L678-L683
https://github.com/m3db/m3/blob/master/src/dbnode/storage/shard.go#L387-L389
Relevant goroutine dump excerpt at the time of deadlock:
The text was updated successfully, but these errors were encountered: