Details
-
Bug
-
Resolution: Gone away
-
Major - P3
-
None
-
None
-
None
-
Service Arch
-
ALL
-
4
Description
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.