-
Type: Bug
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:
-
Service Arch
-
ALL
-
4
It's possible for the following to happen:
1. Service acquires mutex mx and invokes some cleanup work.
2. As part of cleanup, call setError on owned promises.
3. AsyncTryUntilWithDelay::runImpl reaches the end of an iteration and invokes shouldStopIteration inline, but shouldStopIteration also acquires mx.
4. We get a deadlock because the service is unable to finish the cleanup work while holding the mutex, but AsyncTryUntilWithDelay is stuck waiting on the mutex.