code: def _clear(reason, idle_pool, using_pool, channel_pool, conn_id):
          
          with _lock():
              try:
                  idle_pool.pop(conn_id)
                  logger.info('a connection lost when not using')
              except KeyError:
                  if using_pool.pop(conn_id, None):
                      logger.warn('connection lost when using, should be handled later')
                      return reason
              finally:
                  channel_pool.pop(conn_id, None)
docs: clear the bad connection
          :param reason:
          :param idle_pool:
          :param using_pool:
          :param channel_pool:
          :param conn_id:
          :return: