Details
-
Bug
-
Resolution: Fixed
-
Major
-
6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.0.4, 6.5.1, 6.5.0
-
None
-
Untriaged
-
1
-
Unknown
Description
Whenever a listener is being removed from the leader, a notification is sent to leader's change channel. This is done while holding a lock. If the channel is full, the function will block here.
On the other side, if leaderServer is processing a notification on leader's change channel, It will call GetActiveEnsembleSize which also attempts to take same lock (which is held by removeListener), and hence leading to a deadlock.
Attachments
Issue Links
- backports to
-
MB-39477 [Backport MB-39163 to 6.6.0] Avoid possible deadlock in removeListener in gometa leader
-
- Closed
-
-
MB-40407 [Backport MB-39163 to 6.0.5] Avoid possible deadlock in removeListener in gometa leader
-
- Closed
-
-
MB-43047 [Backport MB-39163 to 6.5.2] Avoid possible deadlock in removeListener in gometa leader
-
- Closed
-
For Gerrit Dashboard: MB-39163 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
127279,2 | MB-39163: Avoid deadlock in leader if changech is full | master | gometa | Status: MERGED | +2 | +1 |
128190,2 | MB-39163: Increase size of the change notification channel in leader | master | gometa | Status: MERGED | +2 | +1 |
128570,2 | MB-39477: Avoid deadlock in leader if changech is full | mad-hatter | gometa | Status: MERGED | +2 | +1 |
128972,1 | MB-39477: Increase size of the change notification channel in leader | mad-hatter | gometa | Status: MERGED | +2 | +1 |
140991,3 | MB-40407: Avoid deadlock in leader if changech is full | alice | gometa | Status: MERGED | +2 | +1 |
140992,3 | MB-40407: Increase size of the change notification channel in leader | alice | gometa | Status: MERGED | +2 | +1 |
142893,2 | MB-43047: Avoid deadlock in leader if changech is full | 6.5.2 | gometa | Status: MERGED | +2 | +1 |
142895,2 | MB-43047: Increase size of the change notification channel in leader | 6.5.2 | gometa | Status: MERGED | +2 | +1 |