docs: def discover_master(self, service_name):
          """
          Asks sentinel servers for the Redis master's address corresponding
          to the service labeled ``service_name``.
  
          Returns a pair (address, port) or raises MasterNotFoundError if no
          master is found.
          """
          for sentinel_no, sentinel in enumerate(self.sentinels):
              try:
                  masters = sentinel.sentinel_masters()
              except (ConnectionError, TimeoutError):
                  continue
              state = masters.get(service_name)
              if state and self.check_master_state(state, service_name):
                  # Put this sentinel at the top of the list
                  self.sentinels[0], self.sentinels[sentinel_no] = (
                      sentinel, self.sentinels[0])
                  return state['ip'], state['port']
          raise MasterNotFoundError("No master found for %r" % (service_name,))