code: def run(self):
          
          log.info("%r: Starting %r clients", self.container_id, len(self.clients))
          try:
              self._start_clients()
              redirects = [c.redirected for c in self.clients if c.redirected]
              failed = [c.error for c in self.clients if c.error]
              if failed and len(failed) == len(self.clients):
                  log.warning("%r: All clients failed to start.", self.container_id)
                  raise failed[0]
              if failed:
                  log.warning("%r: %r clients failed to start.", self.container_id, len(failed))
              elif redirects:
                  self._handle_redirect(redirects)
          except EventHubError:
              self.stop()
              raise
          except Exception as e:
              self.stop()
              raise EventHubError(str(e))
          return failed
docs: Run the EventHubClient in blocking mode.
          Opens the connection and starts running all Sender/Receiver clients.
          Returns a list of the start up results. For a succcesful client start the
          result will be `None`, otherwise the exception raised.
          If all clients failed to start, then run will fail, shut down the connection
          and raise an exception.
          If at least one client starts up successfully the run command will succeed.
  
          :rtype: list[~azure.eventhub.common.EventHubError]