code: def update_routing_table(self):
          
          # copied because it can be modified
          existing_routers = list(self.routing_table.routers)
  
          has_tried_initial_routers = False
          if self.missing_writer:
              has_tried_initial_routers = True
              if self.update_routing_table_from(self.initial_address):
                  return
  
          if self.update_routing_table_from(*existing_routers):
              return
  
          if not has_tried_initial_routers and self.initial_address not in existing_routers:
              if self.update_routing_table_from(self.initial_address):
                  return
  
          # None of the routers have been successful, so just fail
          raise ServiceUnavailable("Unable to retrieve routing information")
docs: Update the routing table from the first router able to provide
          valid routing information.