Skip to content

feat: left join

feat: left join #4101

GitHub Actions / SDK Test Report failed Oct 31, 2023 in 0s

5 fail, 13 skipped, 292 pass in 45m 21s

100 files  100 suites   45m 21s ⏱️
310 tests 292 ✔️ 13 💤 5
418 runs  400 ✔️ 13 💤 5

Results for commit 1437ce9.

Annotations

Check warning on line 0 in tests.log_parser_test

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_table.logfile] (tests.log_parser_test) failed

artifacts/linux-ut-result-python-7dca3f28194443baeac8ec5bef61b8e3907c63e6/openmldb_tool/tests/pytest.xml [took 4m 57s]
Raw output
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f5ab403e670>
method = 'GET', url = '/download/diag/common_err.yml', body = None
headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5ab403edc0>
pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, conn = None
release_this_conn = True, err = None, clean_exit = False
timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f5ab4037ca0>
is_new_proxy_conn = False

    def urlopen(
        self,
        method,
        url,
        body=None,
        headers=None,
        retries=None,
        redirect=True,
        assert_same_host=True,
        timeout=_Default,
        pool_timeout=None,
        release_conn=None,
        chunked=False,
        body_pos=None,
        **response_kw
    ):
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.
    
        .. note::
    
           More commonly, it's appropriate to use a convenience method provided
           by :class:`.RequestMethods`, such as :meth:`request`.
    
        .. note::
    
           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param body:
            Data to send in the request body (useful for creating
            POST requests, see HTTPConnectionPool.post_url for
            more convenience).
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.
    
        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When False, you can
            use the pool on an HTTP proxy and request foreign hosts.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.
    
        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of
            ``response_kw.get('preload_content', True)``.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
    
        :param \\**response_kw:
            Additional parameters are passed to
            :meth:`urllib3.response.HTTPResponse.from_httplib`
        """
        if headers is None:
            headers = self.headers
    
        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    
        if release_conn is None:
            release_conn = response_kw.get("preload_content", True)
    
        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)
    
        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = six.ensure_str(_encode_target(url))
        else:
            url = six.ensure_str(parse_url(url).url)
    
        conn = None
    
        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] <https://github.com/urllib3/urllib3/issues/651>
        release_this_conn = release_conn
    
        # Merge the proxy headers. Only do this in HTTP. We have to copy the
        # headers dict so we can safely change it without those changes being
        # reflected in anyone else's copy.
        if self.scheme == "http":
            headers = headers.copy()
            headers.update(self.proxy_headers)
    
        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None
    
        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False
    
        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)
    
        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)
    
            conn.timeout = timeout_obj.connect_timeout
    
            is_new_proxy_conn = self.proxy is not None and not getattr(
                conn, "sock", None
            )
            if is_new_proxy_conn:
                self._prepare_proxy(conn)
    
            # Make the request on the httplib connection object.
>           httplib_response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
            )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           ConnectionResetError: [Errno 104] Connection reset by peer

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ConnectionResetError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x7f5ab403e0a0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5ab403edc0>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
>               resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:719: in urlopen
    retries = retries.increment(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/retry.py:400: in increment
    raise six.reraise(type(error), error, _stacktrace)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/packages/six.py:692: in reraise
    raise value.with_traceback(tb)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: in urlopen
    httplib_response = self._make_request(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ProtocolError

During handling of the above exception, another exception occurred:

err_log = '/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_table.logfile'

    @pytest.mark.parametrize("err_log", err_log_list)
    def test_pattern_logs(err_log):
        flags.FLAGS['cluster'].parse(OpenMLDB_ZK_CLUSTER)
        flags.FLAGS['sdk_log'].parse(False)
        print("in", err_log)
        with open(err_log, "r") as f:
            log = f.read()
        parser = LogParser()
>       parser.update_conf_file("https://openmldb.ai/download/diag/common_err.yml")

log_parser_test.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../diagnostic_tool/parser.py:69: in update_conf_file
    response = requests.get(log_conf_url)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:75: in get
    return request('get', url, params=params, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:60: in request
    return session.request(method=method, url=url, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:533: in request
    resp = self.send(prep, **send_kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:646: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x7f5ab403e0a0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5ab403edc0>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
                resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )
    
            # Send the request.
            else:
                if hasattr(conn, 'proxy_pool'):
                    conn = conn.proxy_pool
    
                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
    
                try:
                    low_conn.putrequest(request.method,
                                        url,
                                        skip_accept_encoding=True)
    
                    for header, value in request.headers.items():
                        low_conn.putheader(header, value)
    
                    low_conn.endheaders()
    
                    for i in request.body:
                        low_conn.send(hex(len(i))[2:].encode('utf-8'))
                        low_conn.send(b'\r\n')
                        low_conn.send(i)
                        low_conn.send(b'\r\n')
                    low_conn.send(b'0\r\n\r\n')
    
                    # Receive the response from the server
                    try:
                        # For Python 2.7, use buffering of HTTP responses
                        r = low_conn.getresponse(buffering=True)
                    except TypeError:
                        # For compatibility with Python 3.3+
                        r = low_conn.getresponse()
    
                    resp = HTTPResponse.from_httplib(
                        r,
                        pool=conn,
                        connection=low_conn,
                        preload_content=False,
                        decode_content=False
                    )
                except:
                    # If we hit any problems here, clean up the connection.
                    # Then, reraise so that we can handle the actual exception.
                    low_conn.close()
                    raise
    
        except (ProtocolError, socket.error) as err:
>           raise ConnectionError(err, request=request)
E           requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:498: ConnectionError

Check warning on line 0 in tests.log_parser_test

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/select_into_empty.logfile] (tests.log_parser_test) failed

artifacts/linux-ut-result-python-7dca3f28194443baeac8ec5bef61b8e3907c63e6/openmldb_tool/tests/pytest.xml [took 13m 41s]
Raw output
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f5aac418a00>
method = 'GET', url = '/download/diag/common_err.yml', body = None
headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac418e50>
pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, conn = None
release_this_conn = True, err = None, clean_exit = False
timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f5aac418cd0>
is_new_proxy_conn = False

    def urlopen(
        self,
        method,
        url,
        body=None,
        headers=None,
        retries=None,
        redirect=True,
        assert_same_host=True,
        timeout=_Default,
        pool_timeout=None,
        release_conn=None,
        chunked=False,
        body_pos=None,
        **response_kw
    ):
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.
    
        .. note::
    
           More commonly, it's appropriate to use a convenience method provided
           by :class:`.RequestMethods`, such as :meth:`request`.
    
        .. note::
    
           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param body:
            Data to send in the request body (useful for creating
            POST requests, see HTTPConnectionPool.post_url for
            more convenience).
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.
    
        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When False, you can
            use the pool on an HTTP proxy and request foreign hosts.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.
    
        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of
            ``response_kw.get('preload_content', True)``.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
    
        :param \\**response_kw:
            Additional parameters are passed to
            :meth:`urllib3.response.HTTPResponse.from_httplib`
        """
        if headers is None:
            headers = self.headers
    
        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    
        if release_conn is None:
            release_conn = response_kw.get("preload_content", True)
    
        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)
    
        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = six.ensure_str(_encode_target(url))
        else:
            url = six.ensure_str(parse_url(url).url)
    
        conn = None
    
        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] <https://github.com/urllib3/urllib3/issues/651>
        release_this_conn = release_conn
    
        # Merge the proxy headers. Only do this in HTTP. We have to copy the
        # headers dict so we can safely change it without those changes being
        # reflected in anyone else's copy.
        if self.scheme == "http":
            headers = headers.copy()
            headers.update(self.proxy_headers)
    
        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None
    
        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False
    
        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)
    
        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)
    
            conn.timeout = timeout_obj.connect_timeout
    
            is_new_proxy_conn = self.proxy is not None and not getattr(
                conn, "sock", None
            )
            if is_new_proxy_conn:
                self._prepare_proxy(conn)
    
            # Make the request on the httplib connection object.
>           httplib_response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
            )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           ConnectionResetError: [Errno 104] Connection reset by peer

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ConnectionResetError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x7f5ac3c676a0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac418e50>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
>               resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:719: in urlopen
    retries = retries.increment(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/retry.py:400: in increment
    raise six.reraise(type(error), error, _stacktrace)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/packages/six.py:692: in reraise
    raise value.with_traceback(tb)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: in urlopen
    httplib_response = self._make_request(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ProtocolError

During handling of the above exception, another exception occurred:

err_log = '/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/select_into_empty.logfile'

    @pytest.mark.parametrize("err_log", err_log_list)
    def test_pattern_logs(err_log):
        flags.FLAGS['cluster'].parse(OpenMLDB_ZK_CLUSTER)
        flags.FLAGS['sdk_log'].parse(False)
        print("in", err_log)
        with open(err_log, "r") as f:
            log = f.read()
        parser = LogParser()
>       parser.update_conf_file("https://openmldb.ai/download/diag/common_err.yml")

log_parser_test.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../diagnostic_tool/parser.py:69: in update_conf_file
    response = requests.get(log_conf_url)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:75: in get
    return request('get', url, params=params, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:60: in request
    return session.request(method=method, url=url, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:533: in request
    resp = self.send(prep, **send_kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:646: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x7f5ac3c676a0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac418e50>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
                resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )
    
            # Send the request.
            else:
                if hasattr(conn, 'proxy_pool'):
                    conn = conn.proxy_pool
    
                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
    
                try:
                    low_conn.putrequest(request.method,
                                        url,
                                        skip_accept_encoding=True)
    
                    for header, value in request.headers.items():
                        low_conn.putheader(header, value)
    
                    low_conn.endheaders()
    
                    for i in request.body:
                        low_conn.send(hex(len(i))[2:].encode('utf-8'))
                        low_conn.send(b'\r\n')
                        low_conn.send(i)
                        low_conn.send(b'\r\n')
                    low_conn.send(b'0\r\n\r\n')
    
                    # Receive the response from the server
                    try:
                        # For Python 2.7, use buffering of HTTP responses
                        r = low_conn.getresponse(buffering=True)
                    except TypeError:
                        # For compatibility with Python 3.3+
                        r = low_conn.getresponse()
    
                    resp = HTTPResponse.from_httplib(
                        r,
                        pool=conn,
                        connection=low_conn,
                        preload_content=False,
                        decode_content=False
                    )
                except:
                    # If we hit any problems here, clean up the connection.
                    # Then, reraise so that we can handle the actual exception.
                    low_conn.close()
                    raise
    
        except (ProtocolError, socket.error) as err:
>           raise ConnectionError(err, request=request)
E           requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:498: ConnectionError

Check warning on line 0 in tests.log_parser_test

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/yarn_error.logfile] (tests.log_parser_test) failed

artifacts/linux-ut-result-python-7dca3f28194443baeac8ec5bef61b8e3907c63e6/openmldb_tool/tests/pytest.xml [took 6m 33s]
Raw output
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f5aac52a7f0>
method = 'GET', url = '/download/diag/common_err.yml', body = None
headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac52a9d0>
pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, conn = None
release_this_conn = True, err = None, clean_exit = False
timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f5aac3299a0>
is_new_proxy_conn = False

    def urlopen(
        self,
        method,
        url,
        body=None,
        headers=None,
        retries=None,
        redirect=True,
        assert_same_host=True,
        timeout=_Default,
        pool_timeout=None,
        release_conn=None,
        chunked=False,
        body_pos=None,
        **response_kw
    ):
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.
    
        .. note::
    
           More commonly, it's appropriate to use a convenience method provided
           by :class:`.RequestMethods`, such as :meth:`request`.
    
        .. note::
    
           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param body:
            Data to send in the request body (useful for creating
            POST requests, see HTTPConnectionPool.post_url for
            more convenience).
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.
    
        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When False, you can
            use the pool on an HTTP proxy and request foreign hosts.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.
    
        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of
            ``response_kw.get('preload_content', True)``.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
    
        :param \\**response_kw:
            Additional parameters are passed to
            :meth:`urllib3.response.HTTPResponse.from_httplib`
        """
        if headers is None:
            headers = self.headers
    
        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    
        if release_conn is None:
            release_conn = response_kw.get("preload_content", True)
    
        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)
    
        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = six.ensure_str(_encode_target(url))
        else:
            url = six.ensure_str(parse_url(url).url)
    
        conn = None
    
        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] <https://github.com/urllib3/urllib3/issues/651>
        release_this_conn = release_conn
    
        # Merge the proxy headers. Only do this in HTTP. We have to copy the
        # headers dict so we can safely change it without those changes being
        # reflected in anyone else's copy.
        if self.scheme == "http":
            headers = headers.copy()
            headers.update(self.proxy_headers)
    
        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None
    
        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False
    
        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)
    
        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)
    
            conn.timeout = timeout_obj.connect_timeout
    
            is_new_proxy_conn = self.proxy is not None and not getattr(
                conn, "sock", None
            )
            if is_new_proxy_conn:
                self._prepare_proxy(conn)
    
            # Make the request on the httplib connection object.
>           httplib_response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
            )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           ConnectionResetError: [Errno 104] Connection reset by peer

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ConnectionResetError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x7f5aac52aaf0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac52a9d0>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
>               resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:719: in urlopen
    retries = retries.increment(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/retry.py:400: in increment
    raise six.reraise(type(error), error, _stacktrace)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/packages/six.py:692: in reraise
    raise value.with_traceback(tb)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: in urlopen
    httplib_response = self._make_request(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ProtocolError

During handling of the above exception, another exception occurred:

err_log = '/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/yarn_error.logfile'

    @pytest.mark.parametrize("err_log", err_log_list)
    def test_pattern_logs(err_log):
        flags.FLAGS['cluster'].parse(OpenMLDB_ZK_CLUSTER)
        flags.FLAGS['sdk_log'].parse(False)
        print("in", err_log)
        with open(err_log, "r") as f:
            log = f.read()
        parser = LogParser()
>       parser.update_conf_file("https://openmldb.ai/download/diag/common_err.yml")

log_parser_test.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../diagnostic_tool/parser.py:69: in update_conf_file
    response = requests.get(log_conf_url)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:75: in get
    return request('get', url, params=params, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:60: in request
    return session.request(method=method, url=url, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:533: in request
    resp = self.send(prep, **send_kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:646: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x7f5aac52aaf0>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac52a9d0>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
                resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )
    
            # Send the request.
            else:
                if hasattr(conn, 'proxy_pool'):
                    conn = conn.proxy_pool
    
                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
    
                try:
                    low_conn.putrequest(request.method,
                                        url,
                                        skip_accept_encoding=True)
    
                    for header, value in request.headers.items():
                        low_conn.putheader(header, value)
    
                    low_conn.endheaders()
    
                    for i in request.body:
                        low_conn.send(hex(len(i))[2:].encode('utf-8'))
                        low_conn.send(b'\r\n')
                        low_conn.send(i)
                        low_conn.send(b'\r\n')
                    low_conn.send(b'0\r\n\r\n')
    
                    # Receive the response from the server
                    try:
                        # For Python 2.7, use buffering of HTTP responses
                        r = low_conn.getresponse(buffering=True)
                    except TypeError:
                        # For compatibility with Python 3.3+
                        r = low_conn.getresponse()
    
                    resp = HTTPResponse.from_httplib(
                        r,
                        pool=conn,
                        connection=low_conn,
                        preload_content=False,
                        decode_content=False
                    )
                except:
                    # If we hit any problems here, clean up the connection.
                    # Then, reraise so that we can handle the actual exception.
                    low_conn.close()
                    raise
    
        except (ProtocolError, socket.error) as err:
>           raise ConnectionError(err, request=request)
E           requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:498: ConnectionError

Check warning on line 0 in tests.log_parser_test

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_class.logfile] (tests.log_parser_test) failed

artifacts/linux-ut-result-python-7dca3f28194443baeac8ec5bef61b8e3907c63e6/openmldb_tool/tests/pytest.xml [took 4m 51s]
Raw output
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f5aac4f5910>
method = 'GET', url = '/download/diag/common_err.yml', body = None
headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac4f5940>
pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, conn = None
release_this_conn = True, err = None, clean_exit = False
timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f5aac4f5af0>
is_new_proxy_conn = False

    def urlopen(
        self,
        method,
        url,
        body=None,
        headers=None,
        retries=None,
        redirect=True,
        assert_same_host=True,
        timeout=_Default,
        pool_timeout=None,
        release_conn=None,
        chunked=False,
        body_pos=None,
        **response_kw
    ):
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.
    
        .. note::
    
           More commonly, it's appropriate to use a convenience method provided
           by :class:`.RequestMethods`, such as :meth:`request`.
    
        .. note::
    
           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param body:
            Data to send in the request body (useful for creating
            POST requests, see HTTPConnectionPool.post_url for
            more convenience).
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.
    
        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When False, you can
            use the pool on an HTTP proxy and request foreign hosts.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.
    
        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of
            ``response_kw.get('preload_content', True)``.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
    
        :param \\**response_kw:
            Additional parameters are passed to
            :meth:`urllib3.response.HTTPResponse.from_httplib`
        """
        if headers is None:
            headers = self.headers
    
        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    
        if release_conn is None:
            release_conn = response_kw.get("preload_content", True)
    
        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)
    
        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = six.ensure_str(_encode_target(url))
        else:
            url = six.ensure_str(parse_url(url).url)
    
        conn = None
    
        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] <https://github.com/urllib3/urllib3/issues/651>
        release_this_conn = release_conn
    
        # Merge the proxy headers. Only do this in HTTP. We have to copy the
        # headers dict so we can safely change it without those changes being
        # reflected in anyone else's copy.
        if self.scheme == "http":
            headers = headers.copy()
            headers.update(self.proxy_headers)
    
        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None
    
        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False
    
        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)
    
        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)
    
            conn.timeout = timeout_obj.connect_timeout
    
            is_new_proxy_conn = self.proxy is not None and not getattr(
                conn, "sock", None
            )
            if is_new_proxy_conn:
                self._prepare_proxy(conn)
    
            # Make the request on the httplib connection object.
>           httplib_response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
            )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           ConnectionResetError: [Errno 104] Connection reset by peer

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ConnectionResetError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x7f5aac4f5640>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac4f5940>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
>               resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:719: in urlopen
    retries = retries.increment(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/retry.py:400: in increment
    raise six.reraise(type(error), error, _stacktrace)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/packages/six.py:692: in reraise
    raise value.with_traceback(tb)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: in urlopen
    httplib_response = self._make_request(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ProtocolError

During handling of the above exception, another exception occurred:

err_log = '/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_class.logfile'

    @pytest.mark.parametrize("err_log", err_log_list)
    def test_pattern_logs(err_log):
        flags.FLAGS['cluster'].parse(OpenMLDB_ZK_CLUSTER)
        flags.FLAGS['sdk_log'].parse(False)
        print("in", err_log)
        with open(err_log, "r") as f:
            log = f.read()
        parser = LogParser()
>       parser.update_conf_file("https://openmldb.ai/download/diag/common_err.yml")

log_parser_test.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../diagnostic_tool/parser.py:69: in update_conf_file
    response = requests.get(log_conf_url)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:75: in get
    return request('get', url, params=params, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:60: in request
    return session.request(method=method, url=url, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:533: in request
    resp = self.send(prep, **send_kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:646: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x7f5aac4f5640>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac4f5940>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
                resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )
    
            # Send the request.
            else:
                if hasattr(conn, 'proxy_pool'):
                    conn = conn.proxy_pool
    
                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
    
                try:
                    low_conn.putrequest(request.method,
                                        url,
                                        skip_accept_encoding=True)
    
                    for header, value in request.headers.items():
                        low_conn.putheader(header, value)
    
                    low_conn.endheaders()
    
                    for i in request.body:
                        low_conn.send(hex(len(i))[2:].encode('utf-8'))
                        low_conn.send(b'\r\n')
                        low_conn.send(i)
                        low_conn.send(b'\r\n')
                    low_conn.send(b'0\r\n\r\n')
    
                    # Receive the response from the server
                    try:
                        # For Python 2.7, use buffering of HTTP responses
                        r = low_conn.getresponse(buffering=True)
                    except TypeError:
                        # For compatibility with Python 3.3+
                        r = low_conn.getresponse()
    
                    resp = HTTPResponse.from_httplib(
                        r,
                        pool=conn,
                        connection=low_conn,
                        preload_content=False,
                        decode_content=False
                    )
                except:
                    # If we hit any problems here, clean up the connection.
                    # Then, reraise so that we can handle the actual exception.
                    low_conn.close()
                    raise
    
        except (ProtocolError, socket.error) as err:
>           raise ConnectionError(err, request=request)
E           requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:498: ConnectionError

Check warning on line 0 in tests.log_parser_test

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_db.logfile] (tests.log_parser_test) failed

artifacts/linux-ut-result-python-7dca3f28194443baeac8ec5bef61b8e3907c63e6/openmldb_tool/tests/pytest.xml [took 4m 52s]
Raw output
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7f5aac1f61c0>
method = 'GET', url = '/download/diag/common_err.yml', body = None
headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
redirect = False, assert_same_host = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac1f6100>
pool_timeout = None, release_conn = False, chunked = False, body_pos = None
response_kw = {'decode_content': False, 'preload_content': False}, conn = None
release_this_conn = True, err = None, clean_exit = False
timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f5aac1b5cd0>
is_new_proxy_conn = False

    def urlopen(
        self,
        method,
        url,
        body=None,
        headers=None,
        retries=None,
        redirect=True,
        assert_same_host=True,
        timeout=_Default,
        pool_timeout=None,
        release_conn=None,
        chunked=False,
        body_pos=None,
        **response_kw
    ):
        """
        Get a connection from the pool and perform an HTTP request. This is the
        lowest level call for making a request, so you'll need to specify all
        the raw details.
    
        .. note::
    
           More commonly, it's appropriate to use a convenience method provided
           by :class:`.RequestMethods`, such as :meth:`request`.
    
        .. note::
    
           `release_conn` will only behave as expected if
           `preload_content=False` because we want to make
           `preload_content=False` the default behaviour someday soon without
           breaking backwards compatibility.
    
        :param method:
            HTTP request method (such as GET, POST, PUT, etc.)
    
        :param body:
            Data to send in the request body (useful for creating
            POST requests, see HTTPConnectionPool.post_url for
            more convenience).
    
        :param headers:
            Dictionary of custom headers to send, such as User-Agent,
            If-None-Match, etc. If None, pool headers are used. If provided,
            these headers completely replace any pool-specific headers.
    
        :param retries:
            Configure the number of retries to allow before raising a
            :class:`~urllib3.exceptions.MaxRetryError` exception.
    
            Pass ``None`` to retry until you receive a response. Pass a
            :class:`~urllib3.util.retry.Retry` object for fine-grained control
            over different types of retries.
            Pass an integer number to retry connection errors that many times,
            but no other types of errors. Pass zero to never retry.
    
            If ``False``, then retries are disabled and any exception is raised
            immediately. Also, instead of raising a MaxRetryError on redirects,
            the redirect response will be returned.
    
        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    
        :param redirect:
            If True, automatically handle redirects (status codes 301, 302,
            303, 307, 308). Each redirect counts as a retry. Disabling retries
            will disable redirect, too.
    
        :param assert_same_host:
            If ``True``, will make sure that the host of the pool requests is
            consistent else will raise HostChangedError. When False, you can
            use the pool on an HTTP proxy and request foreign hosts.
    
        :param timeout:
            If specified, overrides the default timeout for this one
            request. It may be a float (in seconds) or an instance of
            :class:`urllib3.util.Timeout`.
    
        :param pool_timeout:
            If set and the pool is set to block=True, then this method will
            block for ``pool_timeout`` seconds and raise EmptyPoolError if no
            connection is available within the time period.
    
        :param release_conn:
            If False, then the urlopen call will not release the connection
            back into the pool once a response is received (but will release if
            you read the entire contents of the response such as when
            `preload_content=True`). This is useful if you're not preloading
            the response's content immediately. You will need to call
            ``r.release_conn()`` on the response ``r`` to return the connection
            back into the pool. If None, it takes the value of
            ``response_kw.get('preload_content', True)``.
    
        :param chunked:
            If True, urllib3 will send the body using chunked transfer
            encoding. Otherwise, urllib3 will send the body using the standard
            content-length form. Defaults to False.
    
        :param int body_pos:
            Position to seek to in file-like body in the event of a retry or
            redirect. Typically this won't need to be set because urllib3 will
            auto-populate the value when needed.
    
        :param \\**response_kw:
            Additional parameters are passed to
            :meth:`urllib3.response.HTTPResponse.from_httplib`
        """
        if headers is None:
            headers = self.headers
    
        if not isinstance(retries, Retry):
            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    
        if release_conn is None:
            release_conn = response_kw.get("preload_content", True)
    
        # Check host
        if assert_same_host and not self.is_same_host(url):
            raise HostChangedError(self, url, retries)
    
        # Ensure that the URL we're connecting to is properly encoded
        if url.startswith("/"):
            url = six.ensure_str(_encode_target(url))
        else:
            url = six.ensure_str(parse_url(url).url)
    
        conn = None
    
        # Track whether `conn` needs to be released before
        # returning/raising/recursing. Update this variable if necessary, and
        # leave `release_conn` constant throughout the function. That way, if
        # the function recurses, the original value of `release_conn` will be
        # passed down into the recursive call, and its value will be respected.
        #
        # See issue #651 [1] for details.
        #
        # [1] <https://github.com/urllib3/urllib3/issues/651>
        release_this_conn = release_conn
    
        # Merge the proxy headers. Only do this in HTTP. We have to copy the
        # headers dict so we can safely change it without those changes being
        # reflected in anyone else's copy.
        if self.scheme == "http":
            headers = headers.copy()
            headers.update(self.proxy_headers)
    
        # Must keep the exception bound to a separate variable or else Python 3
        # complains about UnboundLocalError.
        err = None
    
        # Keep track of whether we cleanly exited the except block. This
        # ensures we do proper cleanup in finally.
        clean_exit = False
    
        # Rewind body position, if needed. Record current position
        # for future rewinds in the event of a redirect/retry.
        body_pos = set_file_position(body, body_pos)
    
        try:
            # Request a connection from the queue.
            timeout_obj = self._get_timeout(timeout)
            conn = self._get_conn(timeout=pool_timeout)
    
            conn.timeout = timeout_obj.connect_timeout
    
            is_new_proxy_conn = self.proxy is not None and not getattr(
                conn, "sock", None
            )
            if is_new_proxy_conn:
                self._prepare_proxy(conn)
    
            # Make the request on the httplib connection object.
>           httplib_response = self._make_request(
                conn,
                method,
                url,
                timeout=timeout_obj,
                body=body,
                headers=headers,
                chunked=chunked,
            )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           ConnectionResetError: [Errno 104] Connection reset by peer

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ConnectionResetError

During handling of the above exception, another exception occurred:

self = <requests.adapters.HTTPAdapter object at 0x7f5aac1f6160>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac1f6100>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
>               resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:439: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:719: in urlopen
    retries = retries.increment(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/retry.py:400: in increment
    raise six.reraise(type(error), error, _stacktrace)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/packages/six.py:692: in reraise
    raise value.with_traceback(tb)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:665: in urlopen
    httplib_response = self._make_request(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:376: in _make_request
    self._validate_conn(conn)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connectionpool.py:994: in _validate_conn
    conn.connect()
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/connection.py:400: in connect
    self.sock = ssl_wrap_socket(
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/urllib3/util/ssl_.py:370: in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:500: in wrap_socket
    return self.sslsocket_class._create(
/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1040: in _create
    self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>
block = False

    @_sslcopydoc
    def do_handshake(self, block=False):
        self._check_connected()
        timeout = self.gettimeout()
        try:
            if timeout == 0.0 and block:
                self.settimeout(None)
>           self._sslobj.do_handshake()
E           urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib64/python3.8/ssl.py:1309: ProtocolError

During handling of the above exception, another exception occurred:

err_log = '/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_db.logfile'

    @pytest.mark.parametrize("err_log", err_log_list)
    def test_pattern_logs(err_log):
        flags.FLAGS['cluster'].parse(OpenMLDB_ZK_CLUSTER)
        flags.FLAGS['sdk_log'].parse(False)
        print("in", err_log)
        with open(err_log, "r") as f:
            log = f.read()
        parser = LogParser()
>       parser.update_conf_file("https://openmldb.ai/download/diag/common_err.yml")

log_parser_test.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../diagnostic_tool/parser.py:69: in update_conf_file
    response = requests.get(log_conf_url)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:75: in get
    return request('get', url, params=params, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/api.py:60: in request
    return session.request(method=method, url=url, **kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:533: in request
    resp = self.send(prep, **send_kwargs)
/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/sessions.py:646: in send
    r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <requests.adapters.HTTPAdapter object at 0x7f5aac1f6160>
request = <PreparedRequest [GET]>, stream = False
timeout = <urllib3.util.timeout.Timeout object at 0x7f5aac1f6100>, verify = True
cert = None, proxies = OrderedDict()

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
        """Sends PreparedRequest object. Returns Response object.
    
        :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
        :param stream: (optional) Whether to stream the request content.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a :ref:`(connect timeout,
            read timeout) <timeouts>` tuple.
        :type timeout: float or tuple or urllib3 Timeout object
        :param verify: (optional) Either a boolean, in which case it controls whether
            we verify the server's TLS certificate, or a string, in which case it
            must be a path to a CA bundle to use
        :param cert: (optional) Any user-provided SSL certificate to be trusted.
        :param proxies: (optional) The proxies dictionary to apply to the request.
        :rtype: requests.Response
        """
    
        try:
            conn = self.get_connection(request.url, proxies)
        except LocationValueError as e:
            raise InvalidURL(e, request=request)
    
        self.cert_verify(conn, request.url, verify, cert)
        url = self.request_url(request, proxies)
        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
    
        chunked = not (request.body is None or 'Content-Length' in request.headers)
    
        if isinstance(timeout, tuple):
            try:
                connect, read = timeout
                timeout = TimeoutSauce(connect=connect, read=read)
            except ValueError as e:
                # this may raise a string formatting error.
                err = ("Invalid timeout {}. Pass a (connect, read) "
                       "timeout tuple, or a single float to set "
                       "both timeouts to the same value".format(timeout))
                raise ValueError(err)
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)
    
        try:
            if not chunked:
                resp = conn.urlopen(
                    method=request.method,
                    url=url,
                    body=request.body,
                    headers=request.headers,
                    redirect=False,
                    assert_same_host=False,
                    preload_content=False,
                    decode_content=False,
                    retries=self.max_retries,
                    timeout=timeout
                )
    
            # Send the request.
            else:
                if hasattr(conn, 'proxy_pool'):
                    conn = conn.proxy_pool
    
                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
    
                try:
                    low_conn.putrequest(request.method,
                                        url,
                                        skip_accept_encoding=True)
    
                    for header, value in request.headers.items():
                        low_conn.putheader(header, value)
    
                    low_conn.endheaders()
    
                    for i in request.body:
                        low_conn.send(hex(len(i))[2:].encode('utf-8'))
                        low_conn.send(b'\r\n')
                        low_conn.send(i)
                        low_conn.send(b'\r\n')
                    low_conn.send(b'0\r\n\r\n')
    
                    # Receive the response from the server
                    try:
                        # For Python 2.7, use buffering of HTTP responses
                        r = low_conn.getresponse(buffering=True)
                    except TypeError:
                        # For compatibility with Python 3.3+
                        r = low_conn.getresponse()
    
                    resp = HTTPResponse.from_httplib(
                        r,
                        pool=conn,
                        connection=low_conn,
                        preload_content=False,
                        decode_content=False
                    )
                except:
                    # If we hit any problems here, clean up the connection.
                    # Then, reraise so that we can handle the actual exception.
                    low_conn.close()
                    raise
    
        except (ProtocolError, socket.error) as err:
>           raise ConnectionError(err, request=request)
E           requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

/opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/requests/adapters.py:498: ConnectionError

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

13 skipped tests found

There are 13 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode non-utf string
com._4paradigm.openmldb.batch.catalog.TestOpenmldbCatalogService ‑ TestOpenmldbCatalogService
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with last join
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with skew config
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with union in INSTANCE_NOT_IN_WINDOW
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeHive ‑ Test CREATE TABLE LIKE HIVE
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeHive ‑ Test CREATE TABLE LIKE HIVE with default db
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeParquet ‑ Test CREATE TABLE LIKE PARQUET
com._4paradigm.openmldb.batch.utils.HybridseUtilTest ‑ Test read from hive
tests.cmd_test ‑ test_cmd_static_check
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_request_timeout
tests.static_check_test ‑ test_in_demo_docker

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / SDK Test Report

310 tests found

There are 310 tests, see "Raw output" for the full list of tests.
Raw output
com._4paradigm.hybridse.HybridSeLibraryTest ‑ initCoreTest
com._4paradigm.hybridse.sdk.RequestEngineTest ‑ RequestEngineTest
com._4paradigm.hybridse.sdk.RequestEngineTest ‑ RequestEngineTest[select col1, col2, col3 col4, col5, col6 from t1;](1)
com._4paradigm.hybridse.sdk.RequestEngineTest ‑ RequestEngineTest[select col2+col3 as addcol23 from t1;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest2
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest2[select col1, col2, col3 col4, col5, col6 from t1;](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest2[select col2+col3 as addcol23 from t1;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest3
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest3[select col1, col2, col3 col4, col5, col6 from t1;](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest3[select col2+col3 as addcol23 from t1;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest4
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest4[select col1, col2, col3 col4, col5, col6 from t1;](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest4[select col2+col3 as addcol23 from t1;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest[select col1, col2, col3 col4, col5, col6 from t1;](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlEngineTest[select col2+col3 as addcol23 from t1;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[,  SELECT sum(db1.t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1
 FROM db1.t1
 last join db2.t2 order by db2.t2.col1
 on db1.t1.col1 = db2.t2.col1 and db1.t1.col2 = db2.t2.col0
 WINDOW w1 AS (
  PARTITION BY db1.t1.col2 ORDER BY db1.t1.col1
  ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW
 ) limit 10;](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[db1,  SELECT sum(t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0
 WINDOW w1 AS (
  PARTITION BY t1.col2 ORDER BY t1.col1
  ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW
 ) limit 10;](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[null,  SELECT sum(db1.t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1
 FROM db1.t1
 last join db2.t2 order by db2.t2.col1
 on db1.t1.col1 = db2.t2.col1 and db1.t1.col2 = db2.t2.col0
 WINDOW w1 AS (
  PARTITION BY db1.t1.col2 ORDER BY db1.t1.col1
  ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW
 ) limit 10;](3)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[, SELECT db2.t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0;
, SQL parse error: Fail to transform data provider op: table t1 not exists in database []](4)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT db1.t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0;
, SQL parse error: Column Not found: db1.t2.str1](2)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT db2.t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = t2.col1 and t1.col2 = db2.t2.col0;
, SQL parse error: Column Not found: .t2.col1](3)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0;
, SQL parse error: Column Not found: .t2.str1](1)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[null, SELECT db2.t2.str1 as t2_str1
 FROM t1
 last join db2.t2 order by db2.t2.col1
 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0;
, SQL parse error: Fail to transform data provider op: table t1 not exists in database []](5)
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlWindowLastJoin
com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlWindowLastJoin[ SELECT sum(t1.col1) over w1 as sum_t1_col1, t2.str1 as t2_str1
 FROM t1
 last join t2 order by t2.col1
 on t1.col1 = t2.col1 and t1.col2 = t2.col0
 WINDOW w1 AS (
  PARTITION BY t1.col2 ORDER BY t1.col1
  ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW
 ) limit 10;](1)
com._4paradigm.openmldb.batch.TestDate ‑ Test date before GMT 0
com._4paradigm.openmldb.batch.TestGroupByPlan ‑ Test groupBy
com._4paradigm.openmldb.batch.TestLimitPlan ‑ Test groupBy and limit
com._4paradigm.openmldb.batch.TestLimitPlan ‑ Test project and limit
com._4paradigm.openmldb.batch.TestLimitPlan ‑ Test simple project and limit
com._4paradigm.openmldb.batch.TestLoadDataPlan ‑ Test Load to Openmldb Offline Storage
com._4paradigm.openmldb.batch.TestLoadDataPlan ‑ Test LoadData to Openmldb Online Storage
com._4paradigm.openmldb.batch.TestLoadDataPlan ‑ Test Only Use SparkSession
com._4paradigm.openmldb.batch.TestNativeBufferPool ‑ Test native buffer pool
com._4paradigm.openmldb.batch.TestOpenmldbBatchConfig ‑ Test config of openmldb.sparksql
com._4paradigm.openmldb.batch.TestOpenmldbBatchConfig ‑ Test make config
com._4paradigm.openmldb.batch.TestOpenmldbBatchConfig ‑ Test make config from dict
com._4paradigm.openmldb.batch.TestProjectPlan ‑ Test groupBy and limit
com._4paradigm.openmldb.batch.TestSelectIntoPlan ‑ Test Plan Select Into
com._4paradigm.openmldb.batch.TestSerializableByteBuffer ‑ Test serializableBuffer
com._4paradigm.openmldb.batch.TestSerializableByteBuffer ‑ Test serializableDirectBuffer
com._4paradigm.openmldb.batch.TestSparkPlanner ‑ Test join plan smoke
com._4paradigm.openmldb.batch.TestSparkPlanner ‑ Test project plan smoke
com._4paradigm.openmldb.batch.TestSparkPlanner ‑ Test project plan with simple project
com._4paradigm.openmldb.batch.TestSparkPlanner ‑ Test window plan smoke
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode empty string
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode non-utf string
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode primitive types
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode special float values
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode special integer values
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode with date
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode with schema slices
com._4paradigm.openmldb.batch.TestSparkRowCodec ‑ Test encode and decode with strings
com._4paradigm.openmldb.batch.TestUnsafeRowRowProject ‑ Test unsafeRow window project
com._4paradigm.openmldb.batch.TestUnsafeRowWindowProject ‑ Test unsafeRow window project
com._4paradigm.openmldb.batch.catalog.TestOpenmldbCatalogService ‑ TestOpenmldbCatalogService
com._4paradigm.openmldb.batch.end2end.SameNameSqlIssue ‑ Test run same SQL in same process
com._4paradigm.openmldb.batch.end2end.TestMultipleDatabases ‑ Test SQL with default database
com._4paradigm.openmldb.batch.end2end.TestMultipleDatabases ‑ Test SQL with multiple databases
com._4paradigm.openmldb.batch.end2end.TestMultipleDatabases ‑ Test SQL with non-default database
com._4paradigm.openmldb.batch.end2end.TestOrderBy ‑ Test end2end Order by
com._4paradigm.openmldb.batch.end2end.TestProject ‑ Test end2end window aggregation
com._4paradigm.openmldb.batch.end2end.TestSelectInto ‑ Test end2end select into
com._4paradigm.openmldb.batch.end2end.TestUnsafeRowOptimization ‑ Test end2end UnsafeRow optimization
com._4paradigm.openmldb.batch.end2end.TestUnsafeRowProject ‑ Test end2end UnsafeRow optimization for row project
com._4paradigm.openmldb.batch.end2end.TestWhere ‑ Test end2end where expression
com._4paradigm.openmldb.batch.end2end.TestWindow ‑ Test end2end window aggregation
com._4paradigm.openmldb.batch.end2end.TestWindow ‑ Test window aggregation with extra window attributes
com._4paradigm.openmldb.batch.end2end.TestWindowParallelization ‑ Test end2end window paralleization in a complex case
com._4paradigm.openmldb.batch.end2end.TestWindowParallelization ‑ Test end2end window paralleization in last join
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with last join
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with skew config
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOpt ‑ Test end2end window skew optimization with union in INSTANCE_NOT_IN_WINDOW
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOptAndParallelization ‑ Test end2end window skew optimization
com._4paradigm.openmldb.batch.end2end.TestWindowSkewOptAndParallelization ‑ Test end2end window skew optimization and window paralleization with union
com._4paradigm.openmldb.batch.end2end.TestWindowUnion ‑ Test end2end window union
com._4paradigm.openmldb.batch.end2end.TestWindowUnion ‑ Test window union after window union
com._4paradigm.openmldb.batch.end2end.TestWindowUnion ‑ Test window union with extra window attributes
com._4paradigm.openmldb.batch.end2end.TestWindowUnionWithSameTimestamp ‑ Test window union with same timestamp
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeHive ‑ Test CREATE TABLE LIKE HIVE
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeHive ‑ Test CREATE TABLE LIKE HIVE with default db
com._4paradigm.openmldb.batch.end2end.hive.TestCreateTableLikeParquet ‑ Test CREATE TABLE LIKE PARQUET
com._4paradigm.openmldb.batch.end2end.simple_project.TestStringToTimestamp ‑ Test string to timestamp
com._4paradigm.openmldb.batch.end2end.sparksql.TestRegisterTable ‑ Test register table for OpenMLDB session and Spark catalog
com._4paradigm.openmldb.batch.end2end.unsafe.TestDateUdf ‑ Test project with date columns
com._4paradigm.openmldb.batch.end2end.unsafe.TestDateUdf ‑ Test simple project with date columns
com._4paradigm.openmldb.batch.end2end.unsafe.TestDateUdf ‑ Test udf of date for project
com._4paradigm.openmldb.batch.end2end.unsafe.TestDateUdf ‑ Test udf of date for window
com._4paradigm.openmldb.batch.end2end.unsafe.TestMultiSliceGetString ‑ Test window over window and get string
com._4paradigm.openmldb.batch.end2end.unsafe.TestSubqueryComplext ‑ Test subquery
com._4paradigm.openmldb.batch.end2end.unsafe.TestTimestampUdf ‑ Test udf of timestamp for project
com._4paradigm.openmldb.batch.end2end.unsafe.TestTimestampUdf ‑ Test udf of timestamp for window
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeFormatForWindowAppendSlice ‑ Test unsafe row format for window over window(window append slice)
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeGroupby ‑ Test unsafe groupby
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeJoin ‑ Test unsafe last join
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeJoin ‑ Test unsafe last join with arithmetic expression
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeJoin ‑ Test unsafe left join
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeLastJoin ‑ Test unsafe last join
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeProject ‑ Test unsafe project
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeProjectWithNull ‑ Test unsafe project with null data
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeWindow ‑ Test unsafe window
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeWindowOverWindow ‑ Test window over window with UnsafeRowOpt
com._4paradigm.openmldb.batch.end2end.unsafe.TestUnsafeWindowWithUnion ‑ Test unsafe window
com._4paradigm.openmldb.batch.end2end.unsafe.TestWindowWithoutSelect ‑ Test window without select
com._4paradigm.openmldb.batch.nulldata.TestJoinWithNullData ‑ Test last join with null data
com._4paradigm.openmldb.batch.nulldata.TestJoinWithNullData ‑ Test left join with null data
com._4paradigm.openmldb.batch.nulldata.TestWindowWithNullData ‑ Test window with null data
com._4paradigm.openmldb.batch.utils.HybridseUtilTest ‑ Test AutoLoad Csv
com._4paradigm.openmldb.batch.utils.HybridseUtilTest ‑ Test AutoLoad Parquet
com._4paradigm.openmldb.batch.utils.HybridseUtilTest ‑ Test AutoLoad Type Timestamp
com._4paradigm.openmldb.batch.utils.HybridseUtilTest ‑ Test read from hive
com._4paradigm.openmldb.batch.utils.TestByteArrayUtil ‑ testBytesToString
com._4paradigm.openmldb.batch.utils.TestByteArrayUtil ‑ testIntToByteArray
com._4paradigm.openmldb.batch.utils.TestByteArrayUtil ‑ testIntToOneByteArray
com._4paradigm.openmldb.batch.utils.TestCaseUtil ‑ Test getYamlSchemaString
com._4paradigm.openmldb.batch.utils.TestCaseUtil ‑ Test getYamlTypeString
com._4paradigm.openmldb.batch.utils.TestGraphvizUtil ‑ Test drawPhysicalPlan
com._4paradigm.openmldb.batch.utils.TestGraphvizUtil ‑ Test getGraphNode
com._4paradigm.openmldb.batch.utils.TestGraphvizUtil ‑ Test visitPhysicalOp
com._4paradigm.openmldb.batch.utils.TestSkewDataFrameUtils ‑ Test genAddColumnsDf
com._4paradigm.openmldb.batch.utils.TestSkewDataFrameUtils ‑ Test genDistributionDf
com._4paradigm.openmldb.batch.utils.TestSkewDataFrameUtils ‑ Test genUnionDf
com._4paradigm.openmldb.batch.utils.TestSparkRowUtil ‑ Test getLongFromIndex
com._4paradigm.openmldb.batch.utils.TestSparkRowUtil ‑ Test rowToString
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test addColumnByMonotonicallyIncreasingId
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test addColumnByZipWithIndex
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test addColumnByZipWithUniqueId
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test addIndexColumn
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test approximateDfEqual
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test checkSchemaIgnoreNullable
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test rddInternalRowToDf
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test smallDfEqual
com._4paradigm.openmldb.batch.utils.TestSparkUtil ‑ Test supportNativeLastJoin
com._4paradigm.openmldb.batch.window.TestWindowComputerWithSampleSupport ‑ Test sample window data
com._4paradigm.openmldb.batchjob.util.TestOpenmldbJobUtil ‑ Test getSqlFromFile
com._4paradigm.openmldb.batchjob.util.TestOpenmldbJobUtil ‑ Test getSqlFromFile for sql file
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull2
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull2[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull2[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNullAndEmpty
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNullAndEmpty[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNullAndEmpty[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testAppendNull[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[100000](18)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[10000](16)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[1000](12)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[100](8)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[10](4)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[1](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[20000](17)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[2000](13)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[200](9)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[20](5)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[3000](14)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[300](10)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[30](6)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[3](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[5000](15)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[500](11)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[50](7)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPutBase[5](3)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[100000](18)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[10000](16)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[1000](12)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[100](8)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[10](4)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[1](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[20000](17)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[2000](13)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[200](9)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[20](5)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[3000](14)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[300](10)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[30](6)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[3](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[5000](15)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[500](11)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[50](7)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderPut[5](3)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[100000](18)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[10000](16)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[1000](12)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[100](8)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[10](4)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[1](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[20000](17)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[2000](13)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[200](9)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[20](5)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[3000](14)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[300](10)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[30](6)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[3](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[5000](15)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[500](11)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[50](7)
com._4paradigm.openmldb.common.RowCodecTest ‑ testDisorderStringOnly[5](3)
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncode
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncodeRow
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncodeRow[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncodeRow[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncode[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testEncode[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testManyCol
com._4paradigm.openmldb.common.RowCodecTest ‑ testManyCol[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testManyCol[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNormal
com._4paradigm.openmldb.common.RowCodecTest ‑ testNormal[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNormal[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNotAppendString
com._4paradigm.openmldb.common.RowCodecTest ‑ testNotAppendString[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNotAppendString[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNull
com._4paradigm.openmldb.common.RowCodecTest ‑ testNull[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testNull[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testSetMultiTimes
com._4paradigm.openmldb.common.RowCodecTest ‑ testSetMultiTimes[classic](1)
com._4paradigm.openmldb.common.RowCodecTest ‑ testSetMultiTimes[flexible](2)
com._4paradigm.openmldb.common.RowCodecTest ‑ testSpecialCase
com._4paradigm.openmldb.common.codec.TestBitMap ‑ testClear
com._4paradigm.openmldb.common.codec.TestBitMap ‑ testSetted
com._4paradigm.openmldb.common.codec.TestBitMap ‑ testSize
com._4paradigm.openmldb.common.codec.TestBitMap ‑ testValue
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ daysToDateInt
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testDateIntToDate
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testDateIntToDays
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testDateToDateInt
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testFromDateToDate
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testFromDaysToDays
com._4paradigm.openmldb.common.codec.TestCodecUtil ‑ testSetStrOffset
com._4paradigm.openmldb.jdbc.JDBCDriverTest ‑ testAllOptionsInUrl
com._4paradigm.openmldb.jdbc.JDBCDriverTest ‑ testForKafkaConnector
com._4paradigm.openmldb.jdbc.JDBCDriverTest ‑ testForPulsarConnector
com._4paradigm.openmldb.jdbc.RequestPreparedStatementTest ‑ testBatchRequest
com._4paradigm.openmldb.jdbc.RequestPreparedStatementTest ‑ testDeploymentBatchRequest
com._4paradigm.openmldb.jdbc.RequestPreparedStatementTest ‑ testDeploymentRequest
com._4paradigm.openmldb.jdbc.RequestPreparedStatementTest ‑ testRequest
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testDDLParseMethods
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertMeta
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertMeta[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@14fff5e7](2)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertMeta[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@2b3abeeb](1)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedState
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedStateBatch
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedStateBatch[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@14fff5e7](2)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedStateBatch[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@2b3abeeb](1)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedState[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@14fff5e7](2)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testInsertPreparedState[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@2b3abeeb](1)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testMergeSQL
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testMoreOptions
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testParameterizedQueryFail
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testParameterizedQueryFail[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@14fff5e7](2)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testParameterizedQueryFail[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@2b3abeeb](1)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testSmoke
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testSmoke[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@14fff5e7](2)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testSmoke[com._4paradigm.openmldb.sdk.impl.SqlClusterExecutor@2b3abeeb](1)
com._4paradigm.openmldb.jdbc.SQLRouterSmokeTest ‑ testValidateSQL
com._4paradigm.openmldb.jdbc.StatementTest ‑ testDelete
com._4paradigm.openmldb.jdbc.StatementTest ‑ testDeploy
com._4paradigm.openmldb.jdbc.StatementTest ‑ testExecute
com._4paradigm.openmldb.sdk.SdkOptionTest ‑ testGetSet
com._4paradigm.openmldb.spark.TestRead ‑ Test use connector to read openmldb online table
com._4paradigm.openmldb.spark.TestWrite ‑ Test write a local file to openmldb
tests.cmd_test ‑ test_argparse
tests.cmd_test ‑ test_cmd
tests.cmd_test ‑ test_cmd_static_check
tests.cmd_test ‑ test_helpmsg
tests.conf_validator_test ‑ test_validate_dist_conf
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_connect_options
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_cursor_without_db
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_custom_order_insert
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_invalid_create
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_invalid_database_arg
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_request_timeout
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_select_conditioned
tests.dbapi_test.TestOpenmldbDBAPI ‑ test_simple_insert_select
tests.dist_conf_test ‑ test_auto_read
tests.dist_conf_test ‑ test_read_hosts
tests.dist_conf_test ‑ test_read_yaml
tests.inspect_test ‑ test_show
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_class.logfile]
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_db.logfile]
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_hive_table.logfile]
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/no_table.logfile]
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/select_into_empty.logfile]
tests.log_parser_test ‑ test_pattern_logs[/__w/OpenMLDB/OpenMLDB/python/openmldb_tool/tests/off_err_logs/yarn_error.logfile]
tests.openmldb_client_test.TestOpenMLDBClient ‑ test_basic
tests.openmldb_client_test.TestOpenMLDBClient ‑ test_more_parameterized_query
tests.openmldb_client_test.TestOpenMLDBClient ‑ test_procedure
tests.rpc_test ‑ test_rpc
tests.sdk_smoke_test ‑ test_sdk_smoke
tests.sql_magic_test.TestSQLMagicOpenMLDB ‑ test_create_table
tests.sql_magic_test.TestSQLMagicOpenMLDB ‑ test_drop
tests.sql_magic_test.TestSQLMagicOpenMLDB ‑ test_insert
tests.sql_magic_test.TestSQLMagicOpenMLDB ‑ test_select
tests.sqlalchemy_api_test.TestSqlalchemyAPI ‑ test_create_table
tests.sqlalchemy_api_test.TestSqlalchemyAPI ‑ test_insert
tests.sqlalchemy_api_test.TestSqlalchemyAPI ‑ test_request_timeout
tests.sqlalchemy_api_test.TestSqlalchemyAPI ‑ test_select
tests.sqlalchemy_api_test.TestSqlalchemyAPI ‑ test_zk_log
tests.static_check_test ‑ test_in_demo_docker
tests.static_check_test ‑ test_local_collector