diff --git a/master/buildbot/util/service.py b/master/buildbot/util/service.py
index <HASH>..<HASH> 100644
--- a/master/buildbot/util/service.py
+++ b/master/buildbot/util/service.py
@@ -309,7 +309,13 @@ class ClusteredBuildbotService(BuildbotService):
                 # this service is half-active, and noted as such in the db..
                 log.err(_why='WARNING: ClusteredService(%s) is only partially active' % self.name)
             finally:
-                yield self._stopActivityPolling()
+                # cannot wait for its deactivation
+                # with yield self._stopActivityPolling
+                # as we're currently executing the
+                # _activityPollCall callback
+                # we just call it without waiting its stop
+                # (that may open race conditions)
+                self._stopActivityPolling()
                 self._startServiceDeferred.callback(None)
         except Exception:
             # don't pass exceptions into LoopingCall, which can cause it to fail
service: clusteredService activityPoll does not wait for its stop

the previous version had a bug as the callback (_activityPoll)
of the object
_activityPollCall = task.LoopingCall(_activityPoll)

waited the activityPollCall to stop during its execution
thus creating a deadlock.

This commit just say the activityPollCall to stop
during the method, and exits without waiting for its end.