text:
Many tests fail when on tight VPN

Describe the bug
My company recently way tightened up its VPN.  This leads to a bunch of failures in make test.
I think the issue here is that a connection can be established, but like data cannot go through.
Reproduction
make test with tight VPN
Logs
FAILED tests/test_file_download.py::CachedDownloadTests::test_private_repo_and_file_cached_locally - huggingface_hub.utils._errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and t...
FAILED tests/test_file_download.py::CachedDownloadTests::test_repo_not_found - huggingface_hub.utils._errors.LocalEntryNotFoundError: Connection error, and we cannot find the requested files in the cached path. Please try again or make sure your Internet connection is on.
FAILED tests/test_file_download.py::HfHubDownloadToLocalDir::test_with_local_dir_and_auto_symlinks_and_file_cached - OSError: [Errno 30] Read-only file system: '/tmp8_f6s_08'
FAILED tests/test_file_download.py::HfHubDownloadToLocalDir::test_with_local_dir_and_symlinks_and_file_cached - AssertionError: False is not true
FAILED tests/test_file_download.py::HfHubDownloadToLocalDir::test_with_local_dir_and_symlinks_and_file_not_cached - AssertionError: False is not true
FAILED tests/test_file_download.py::HfHubDownloadToLocalDir::test_with_local_dir_and_symlinks_and_overwrite - FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/78/lm6p91s90fx99cshsxqz_19w0000gn/T/tmpbu533zrw/config.json'
FAILED tests/test_hf_api.py::CommitApiTest::test_create_commit_huge_regular_files - requests.exceptions.SSLError: (MaxRetryError("HTTPSConnectionPool(host='hub-ci.huggingface.co', port=443): Max retries exceeded with url: /api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/com...

And above that (my terminal ran out of room for full logs):

________________________________________________________________________________ CommitApiTest.test_create_commit_huge_regular_files _________________________________________________________________________________

self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12941f690>, method = 'POST', url = '/api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/commit/main'
body = b'{"key": "header", "value": {"summary": "Test create_commit with huge regular files", "description": ""}}\n{"key": "f...WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=", "path": "file-11.text", "encoding": "base64"}}\n'
headers = {'user-agent': 'unknown/None; hf_hub/0.21.0.dev0; python/3.11.5', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*',...p6KrrTH3KDchhKpRxZwd6dmHWLL', 'Content-Length': '150996335', 'X-Amzn-Trace-Id': '3bb483c8-3921-42b6-b517-ca81cfac0692'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None), redirect = False, assert_same_host = False, timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None
release_conn = False, chunked = False, body_pos = None, response_kw = {'decode_content': False, 'preload_content': False}
parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/commit/main', query=None, fragment=None), destination_scheme = None
conn = None, release_this_conn = True, http_tunnel_required = False, err = None, clean_exit = 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 url:
            The URL to perform the request on.

        :param body:
            Data to send in the request body, either :class:`str`, :class:`bytes`,
            an iterable of :class:`str`/:class:`bytes`, or a file-like object.

        :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`
        """

        parsed_url = parse_url(url)
        destination_scheme = parsed_url.scheme

        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(parsed_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

        http_tunnel_required = connection_requires_http_tunnel(
            self.proxy, self.proxy_config, destination_scheme
        )

        # Merge the proxy headers. Only done when not using HTTP CONNECT. We
        # have to copy the headers dict so we can safely change it without those
        # changes being reflected in anyone else's copy.
        if not http_tunnel_required:
            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 and http_tunnel_required:
                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,
            )

venv/lib/python3.11/site-packages/urllib3/connectionpool.py:715:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv/lib/python3.11/site-packages/urllib3/connectionpool.py:416: in _make_request
    conn.request(method, url, **httplib_request_kw)
venv/lib/python3.11/site-packages/urllib3/connection.py:244: in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
../../.pyenv/versions/3.11.5/lib/python3.11/http/client.py:1286: in request
    self._send_request(method, url, body, headers, encode_chunked)
../../.pyenv/versions/3.11.5/lib/python3.11/http/client.py:1332: in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
../../.pyenv/versions/3.11.5/lib/python3.11/http/client.py:1281: in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
../../.pyenv/versions/3.11.5/lib/python3.11/http/client.py:1080: in _send_output
    self.send(chunk)
../../.pyenv/versions/3.11.5/lib/python3.11/http/client.py:1002: in send
    self.sock.sendall(data)
../../.pyenv/versions/3.11.5/lib/python3.11/ssl.py:1274: in sendall
    v = self.send(byte_view[count:])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <ssl.SSLSocket [closed] fd=-1, family=2, type=1, proto=0>, data = <memory at 0x129aa5780>, flags = 0

    def send(self, data, flags=0):
        self._checkClosed()
        if self._sslobj is not None:
            if flags != 0:
                raise ValueError(
                    "non-zero flags not allowed in calls to send() on %s" %
                    self.__class__)
>           return self._sslobj.write(data)
E           ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2427)

../../.pyenv/versions/3.11.5/lib/python3.11/ssl.py:1243: SSLEOFError

During handling of the above exception, another exception occurred:

self = <huggingface_hub.utils._http.UniqueRequestIdAdapter object at 0x1293fcc50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None), 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:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
>           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,
                chunked=chunked,
            )

venv/lib/python3.11/site-packages/requests/adapters.py:486:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv/lib/python3.11/site-packages/urllib3/connectionpool.py:799: in urlopen
    retries = retries.increment(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Retry(total=0, connect=None, read=False, redirect=None, status=None), method = 'POST', url = '/api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/commit/main', response = None
error = SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)')), _pool = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12941f690>, _stacktrace = <traceback object at 0x129a63f80>

    def increment(
        self,
        method=None,
        url=None,
        response=None,
        error=None,
        _pool=None,
        _stacktrace=None,
    ):
        """Return a new Retry object with incremented retry counters.

        :param response: A response object, or None, if the server did not
            return a response.
        :type response: :class:`~urllib3.response.HTTPResponse`
        :param Exception error: An error encountered during the request, or
            None if the response was received successfully.

        :return: A new ``Retry`` object.
        """
        if self.total is False and error:
            # Disabled, indicate to re-raise the error.
            raise six.reraise(type(error), error, _stacktrace)

        total = self.total
        if total is not None:
            total -= 1

        connect = self.connect
        read = self.read
        redirect = self.redirect
        status_count = self.status
        other = self.other
        cause = "unknown"
        status = None
        redirect_location = None

        if error and self._is_connection_error(error):
            # Connect retry?
            if connect is False:
                raise six.reraise(type(error), error, _stacktrace)
            elif connect is not None:
                connect -= 1

        elif error and self._is_read_error(error):
            # Read retry?
            if read is False or not self._is_method_retryable(method):
                raise six.reraise(type(error), error, _stacktrace)
            elif read is not None:
                read -= 1

        elif error:
            # Other retry?
            if other is not None:
                other -= 1

        elif response and response.get_redirect_location():
            # Redirect retry?
            if redirect is not None:
                redirect -= 1
            cause = "too many redirects"
            redirect_location = response.get_redirect_location()
            status = response.status

        else:
            # Incrementing because of a server error like a 500 in
            # status_forcelist and the given method is in the allowed_methods
            cause = ResponseError.GENERIC_ERROR
            if response and response.status:
                if status_count is not None:
                    status_count -= 1
                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)
                status = response.status

        history = self.history + (
            RequestHistory(method, url, error, status, redirect_location),
        )

        new_retry = self.new(
            total=total,
            connect=connect,
            read=read,
            redirect=redirect,
            status=status_count,
            other=other,
            history=history,
        )

        if new_retry.is_exhausted():
>           raise MaxRetryError(_pool, url, error or ResponseError(cause))
E           urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='hub-ci.huggingface.co', port=443): Max retries exceeded with url: /api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/commit/main (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)')))

venv/lib/python3.11/site-packages/urllib3/util/retry.py:592: MaxRetryError

During handling of the above exception, another exception occurred:

self = <tests.test_hf_api.CommitApiTest testMethod=test_create_commit_huge_regular_files>
repo_url = RepoUrl('https://hub-ci.huggingface.co/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221', endpoint='https://hub-ci.huggingface.co', repo_type='model', repo_id='__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221')

    @use_tmp_repo()
    def test_create_commit_huge_regular_files(self, repo_url: RepoUrl) -> None:
        """Test committing 12 text files (>100MB in total) at once.

        This was not possible when using `json` format instead of `ndjson`
        on the `/create-commit` endpoint.

        See https://github.com/huggingface/huggingface_hub/pull/1117.
        """
        operations = [
            CommitOperationAdd(
                path_in_repo=f"file-{num}.text",
                path_or_fileobj=b"Hello regular " + b"a" * 1024 * 1024 * 9,
            )
            for num in range(12)
        ]
>       self._api.create_commit(
            operations=operations,  # 12*9MB regular => too much for "old" method
            commit_message="Test create_commit with huge regular files",
            repo_id=repo_url.repo_id,
        )

tests/test_hf_api.py:817:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src/huggingface_hub/utils/_validators.py:118: in _inner_fn
    return fn(*args, **kwargs)
src/huggingface_hub/hf_api.py:1208: in _inner
    return fn(self, *args, **kwargs)
src/huggingface_hub/hf_api.py:3626: in create_commit
    commit_resp = get_session().post(url=commit_url, headers=headers, data=data, params=params)
venv/lib/python3.11/site-packages/requests/sessions.py:637: in post
    return self.request("POST", url, data=data, json=json, **kwargs)
venv/lib/python3.11/site-packages/requests/sessions.py:589: in request
    resp = self.send(prep, **send_kwargs)
venv/lib/python3.11/site-packages/requests/sessions.py:703: in send
    r = adapter.send(request, **kwargs)
src/huggingface_hub/utils/_http.py:67: in send
    return super().send(request, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <huggingface_hub.utils._http.UniqueRequestIdAdapter object at 0x1293fcc50>, request = <PreparedRequest [POST]>, stream = False, timeout = Timeout(connect=None, read=None, total=None), 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:
                raise ValueError(
                    f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
                    f"or a single float to set both timeouts to the same value."
                )
        elif isinstance(timeout, TimeoutSauce):
            pass
        else:
            timeout = TimeoutSauce(connect=timeout, read=timeout)

        try:
            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,
                chunked=chunked,
            )

        except (ProtocolError, OSError) as err:
            raise ConnectionError(err, request=request)

        except MaxRetryError as e:
            if isinstance(e.reason, ConnectTimeoutError):
                # TODO: Remove this in 3.0.0: see #2811
                if not isinstance(e.reason, NewConnectionError):
                    raise ConnectTimeout(e, request=request)

            if isinstance(e.reason, ResponseError):
                raise RetryError(e, request=request)

            if isinstance(e.reason, _ProxyError):
                raise ProxyError(e, request=request)

            if isinstance(e.reason, _SSLError):
                # This branch is for urllib3 v1.22 and later.
>               raise SSLError(e, request=request)
E               requests.exceptions.SSLError: (MaxRetryError("HTTPSConnectionPool(host='hub-ci.huggingface.co', port=443): Max retries exceeded with url: /api/models/__DUMMY_TRANSFORMERS_USER__/model-e51e96-17050831767221/commit/main (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2427)')))"), '(Request ID: 3bb483c8-3921-42b6-b517-ca81cfac0692)')

venv/lib/python3.11/site-packages/requests/adapters.py:517: SSLError
____________________________________________________________________________________________ test_from_raw_initialization ____________________________________________________________________________________________

    def test_from_raw_initialization():
        """Test InferenceEndpoint is correctly initialized from raw dict."""
        endpoint = InferenceEndpoint.from_raw(MOCK_INITIALIZING, namespace="foo")

        # Main attributes parsed correctly
        assert endpoint.name == "my-endpoint-name"
        assert endpoint.namespace == "foo"
        assert endpoint.repository == "gpt2"
        assert endpoint.framework == "pytorch"
        assert endpoint.status == "pending"
        assert endpoint.revision == "11c5a3d5811f50298f278a704980280950aedb10"
        assert endpoint.task == "text-generation"
        assert endpoint.type == "protected"

        # Datetime parsed correctly
>       assert endpoint.created_at == datetime(2023, 10, 26, 12, 41, 53, 263078, tzinfo=timezone.utc)
E       AssertionError: assert datetime.datetime(2023, 10, 26, 11, 41, 53, 263078, tzinfo=datetime.timezone.utc) == datetime.datetime(2023, 10, 26, 12, 41, 53, 263078, tzinfo=datetime.timezone.utc)
E        +  where datetime.datetime(2023, 10, 26, 11, 41, 53, 263078, tzinfo=datetime.timezone.utc) = InferenceEndpoint(name='my-endpoint-name', namespace='foo', repository='gpt2', status='pending', url=None).created_at
E        +  and   datetime.datetime(2023, 10, 26, 12, 41, 53, 263078, tzinfo=datetime.timezone.utc) = datetime(2023, 10, 26, 12, 41, 53, 263078, tzinfo=datetime.timezone.utc)
E        +    where datetime.timezone.utc = timezone.utc

tests/test_inference_endpoints.py:126: AssertionError

System info
- huggingface_hub version: 0.21.0.dev0
- Platform: macOS-13.5.2-arm64-arm-64bit
- Python version: 3.11.5
- Running in iPython ?: No
- Running in notebook ?: No
- Running in Google Colab ?: No
- Token path ?: /Users/user/.cache/huggingface/token
- Has saved token ?: False
- Configured git credential helpers: osxkeychain
- FastAI: N/A
- Tensorflow: N/A
- Torch: N/A
- Jinja2: 3.1.3
- Graphviz: N/A
- Pydot: N/A
- Pillow: 10.2.0
- hf_transfer: N/A
- gradio: 4.14.0
- tensorboard: N/A
- numpy: 1.26.3
- pydantic: 2.5.3
- aiohttp: 3.9.1
- ENDPOINT: https://huggingface.co
- HF_HUB_CACHE: /Users/user/.cache/huggingface/hub
- HF_ASSETS_CACHE: /Users/user/.cache/huggingface/assets
- HF_TOKEN_PATH: /Users/user/.cache/huggingface/token
- HF_HUB_OFFLINE: False
- HF_HUB_DISABLE_TELEMETRY: False
- HF_HUB_DISABLE_PROGRESS_BARS: None
- HF_HUB_DISABLE_SYMLINKS_WARNING: False
- HF_HUB_DISABLE_EXPERIMENTAL_WARNING: False
- HF_HUB_DISABLE_IMPLICIT_TOKEN: False
- HF_HUB_ENABLE_HF_TRANSFER: False
- HF_HUB_ETAG_TIMEOUT: 10
- HF_HUB_DOWNLOAD_TIMEOUT: 10

Feel free to close this out, but I am reporting that the test suite has room for robust-ification, or faster failures (e.g. shorter timeouts)

About datetime issues, I've opened https://github.com/huggingface/huggingface_hub/pull/1982 thanks to your report.
About test flakyness, we are aware of the limitations of the current suite. I tried to mitigate the problem by retrying failing tests (when transient errors) which solved our problems in the CI -the CI been the most important part for us to maintain the lib-. Also I don't experience those errors on my local setup (usually with good connection) so I can't really relate. In any case, thanks for raising the question but I'm not sure we can/we want to do much about it.

Yes I follow. If you want to look through the error logs in the original post, you could make separate tickets to solve them all haha. Alternately, feel free to close this out

I quickly looked at the stacktrace you've provided (thanks about that!) but apart from the specific datetime issue I don't think it's work investigating in all the SSLError. I will therefore close this issue :)

authors: Wauplin jamesbraza


text:
High level feedback on docs

From @NielsRogge https://huggingface.slack.com/archives/C02V5EA0A95/p1656934663589609

here, Repository is imported from the library without being used. Also, the repo variable is just casually used without being instantiated
here: I'm not sure how to import upload_file in the code snippets below. Is it just from huggingface_hub import upload_file?
here, I'm reading the docs on "how to upload a file to the hub", but the first example it shows pulls an existing repo from the hub and modifies an existing file. That's not why users came to this page, I want to just upload a new file to the hub rather than modifying an existing one. The second example is also not useful for me as I already have a file.
here, an image is not displayed correctly
here, this code snippet doesn't work out-of-the-box, you also need to provide the commit_message argument

Note that 4 is already fixed in main

Maybe of interest to @stevhliu

Thanks for the feedback, I'll take a look and open a PR to address it!

Seems to be solved in https://github.com/huggingface/huggingface_hub/pull/944 so I'm closing.

source: gharchive/issue

authors: LysandreJik Wauplin osanseviero stevhliu

license_type: permissive

license_source: bigquery


text:
regarding datset .conll format

I just want to ask  that if we dont have files .conll file then what to do?  I am working on resource poor langauge?

I have downloaded the files from this repo https://github.com/clab/att-coref/tree/master/data/conll-2012 and got stuck in issue #286. Trying to get a solution.

repo: huggingface/neuralcoref

license: MIT

license_source: github-api


text:
Upgrade to Transformers 4.40

What does this PR do?

As per title.
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

source: gharchive/pull-request

authors: HuggingFaceDocBuilderDev regisss

repo: huggingface/optimum-habana


text:
Allow changing pkv precision

This PR is a revised version of https://github.com/huggingface/optimum-intel/pull/370.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

@luo-cheng2021, please take a look and test this PR with BF16.

It seems like CI is broken by SD update.

@luo-cheng2021, please take a look and test this PR with BF16.

BF16 case works as expected.

repo: huggingface/optimum-intel


text:
BetterTransformer support for VisionEncoderDecoder models like TrOCR

Feature request
I would like for there to be support for Vision Encoder Decoder models, such as TrOCR, with the BetterTransformer tool.
Motivation
I have a TrOCR model I want to speed up inference for (reducing latency). I've tried every quantization option I could, and none of them are speeding up my inference. If BetterTransformers could support the VisionEncoderDecoder model type, that would make my life a whole lot easier!!
Your contribution
I'm not very knowledgeable about open source contribution, especially on such a big project with so many complicated parts, so I don't know if I could really help with this.

Would also like to see this implemented for Donut models leveraging the VisionEncoderDecoder framework.

authors: clarkh-ncino donjuanpond

repo: huggingface/optimum


text:
Add GPTQ Quantization

What does this PR do?
This PR adds the possibility to perform GTPQ quantization. I tried to be as generic as possible to support any kind of models ( whether it is Transformer models or not). The backend relies on auto_gptq library where we use GTPQ class and QuantLinear class. With this API you can do conversion, saving and loading quantized weights. We have a dependence on accelerate to save the weights and load the quantized weights efficiently without allocating more memory than needed.
Quantize model:
model_name = "bigscience/bloom-1b7"
from transformers import AutoModelForCausalLM, AutoTokenizer
from optimum.gptq import GPTQQuantizer, load_quantized_model
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype = torch.float16, device_map = "auto")
quantizer = GPTQQuantizer(bits=4, group_size=128, desc_act=False)
quantized_model = quantizer.quantize_model(quantized_model, tokenizer, dataset="c4")

Save model
save_folder = 'bloom-1b7-quantized_optimum'
quantizer.save(model,save_folder)

Convert model and Load quantized weights
from accelerate import init_empty_weights
with init_empty_weights():
    empty_model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
empty_model.tie_weights()
model_from_saved = load_quantized_model(empty_model, save_folder=save_folder, device_map="auto")

PS: In a follow-up PR, I will use this API to integrate GTPQ quantization into transformers + modify from_pretrained and  save_pretrained so that we take into account GPTQ quantized model, just like what we did for bitsandbytes
TODO:

[ ] Doc
[ ] CI
[ ] script to calculate the perplexity
[ ] cpu offload (for now, if some modules are offloaded to the cpu (using device_map), the quantization will not work )

I still think that using exllama kernel would be very interesting (for ref https://github.com/fxmarty/q4f16-gemm-gemv-benchmark & huggingface/text-generation-inference#553 (comment), second one is with Triton, that I see is not used here), but integrating with AutoGPTQ is already a nice step (making sure that cuda-old is used when possible).

Yes, adding exllama kernel would be awesome. The best would to be add it on auto_gtpq library.

Is there a hard requirement on accelerate? If so, why?

For the quantization, no hard requirement on accelerate. However, there is a hard requirement for saving and loading the quantized weights. I did that to mimic the behavior that we will have in transformers integration (empty model + loading weights + dispatch according to the device_map). To be clear, the saving and loading function in GPTQQuantizer are not mean to be used for HF transformers model. It is just a way for non Transformer model to save and load their model.

It is also not clear to me what should go in accelerate and optimum, if this PR puts a hard requirement on accelerate. Why not put it in accelerate directly? Why bitsandbytes in accelerate & this in optimum? I think it can be quite confusing to users.

To me, the hard requirement on accelerate is not a big problem as transformers has accelerate as core depedency and optimum is dependent on transformers. However, it might be confusing to users since bnb is on accelerate.
wdyt @younesbelkada ?

Checking in from a transformers API perspective: looks good to me, assuming the from_pretrained and save_pretrained utilities are going to be implemented as described in the plan 🙌
BTW, on script to calculate the perplexity -> this will be VERY helpful to the community, we should definitely publicize it when it is ready!

Can you run make style?

authors: SunMarc fxmarty gante


text:
ENH: Updates for upcoming BNB Int8 release

This PR contains changes to PEFT that relate to an upcoming 0.45.0 release that we are planning for bitsandbytes. Primarily the changes are related to bitsandbytes#1401.

Bitsandbytes will introduce a public API function for LLM.int8() weight dequantization. We use this API when available, and otherwise use a functionally equivalent implementation. Apart from its relative simplicity, this will also resolve issues such as #2065.
The memory_efficient_backward kwarg for Linear8bitLt will be removed in the upcoming release, as per a longstanding deprecation notice. This PR removes usage of the kwarg for compatibility.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

authors: HuggingFaceDocBuilderDev matthewdouglas

repo: huggingface/peft


text:
BERT Input size reduced to half in forward function

I was trying to modify your BertForSequenceClassification class for long sequence classification. Like below:
class MyBertForSequenceClassification(BertPreTrainedModel):
    def __init__(self, config, num_labels=2, output_attentions=False):
        super(MyBertForSequenceClassification, self).__init__(config)
        self.output_attentions = output_attentions
        self.num_labels = num_labels
        self.bert = BertModel(config)
        self.dropout = nn.Dropout(config.hidden_dropout_prob)
        self.classifier = nn.Linear(config.hidden_size*20, num_labels)
        self.softmax = nn.Softmax()
        self.apply(self.init_bert_weights)

    def forward(self, input_ids, token_type_ids=None, attention_mask=None, labels=None, head_mask=None):
        print(input_ids.shape)  # half of actual passed size
        outputs = self.bert(input_ids, token_type_ids, attention_mask, output_all_encoded_layers=False)
        _, pooled_output = outputs
        pooled_output = self.dropout(pooled_output)
        flat_pooled_output = pooled_output.view(-1)
        print(flat_pooled_output.shape)
        logits = self.classifier(flat_pooled_output)
        logits = self.softmax(logits)
        return logits

I found that when I passed the input_ids tensor with dimensions (40, 128) into the model, the actual input_ids I got in the forward function was (20, 128). It always reduce my input to half of original size.

Maybe you have 2 GPUs?

@thomwolf Thanks a lot. I forgot I was running on two gpus.

repo: huggingface/pytorch-pretrained-BERT


text:
I am unable to run this on my iPhone 14 Pro and the app crashes stating that there is over consumption of the memory.

I am unable to run this on my iPhone 14 Pro and it gives out of memory error. I even tried with v2Palettized apart from v2base. Please suggest a solution.

@Zulqurnain24
Have you found out the answer for this? After loading the entire model, I faced this problem.

repo: huggingface/swift-coreml-diffusers


text:
Module 'triton.compiler' has no attribute 'OutOfResources' when trying to run Falcon-180B-Chat-GPTQ model

System Info
Version:
text-generation-launcher 1.2.0
Environment:
Target: x86_64-unknown-linux-gnu
Cargo version: 1.70.0
Commit sha: ccd5725a0c0b2ef151d317c86d1f52ad038bbae9
Docker label: sha-ccd5725

Hardware: 4 x A100
Deployment specificities: I am using Apptainer instead of Docker. Another model I tested runs fine, so I don't think it's responsible.
Information

[X] Docker
[ ] The CLI directly

Tasks

[ ] An officially supported command
[X] My own modifications

Reproduction
Create a SIF image of the suggested version of TGI:
apptainer pull inference.sif docker://ghcr.io/huggingface/text-generation-inference:1.2
Try to run TheBloke/Falcon-180B-Chat-GPTQ model:
apptainer run --nv  --bind ./data:/data:rw inference.sif --model-id "TheBloke/Falcon-180B-Chat-GPTQ" --quantize gptq --port 8080 --ngrok --ngrok-authtoken PRIVATE --ngrok-edge PRIVATE
It will download the model, then start loading it (GPU memory usage will go up). The model will load, then on warmup stage, it will show the following error:
<LONG TRACEBACK SNIPPED>
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/quant_linear.py", line 349, in forward
    out = QuantLinearFunction.apply(
  File "/opt/conda/lib/python3.10/site-packages/torch/autograd/function.py", line 539, in apply
    return super().apply(*args, **kwargs)  # type: ignore[misc]
  File "/opt/conda/lib/python3.10/site-packages/torch/cuda/amp/autocast_mode.py", line 121, in decorate_fwd
    return fwd(*args, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/quant_linear.py", line 244, in forward
    output = matmul248(input, qweight, scales, qzeros, g_idx, bits, maxq)
  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/quant_linear.py", line 216, in matmul248
    matmul_248_kernel[grid](
  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/custom_autotune.py", line 110, in run
    timings = {
  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/custom_autotune.py", line 111, in <dictcomp>
    config: self._bench(*args, config=config, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/text_generation_server/utils/gptq/custom_autotune.py", line 93, in _bench
    except triton.compiler.OutOfResources:
AttributeError: module 'triton.compiler' has no attribute 'OutOfResources'

2023-12-06T23:10:26.411773Z ERROR warmup{max_input_length=1024 max_prefill_tokens=4096 max_total_tokens=2048}:warmup: text_generation_client: router/client/src/lib.rs:33: Server error: module 'triton.compiler' has no attribute 'OutOfResources'

After that, the VRAM usage will drop to 0 and TGI will exit.
I think this might be related to: https://github.com/openai/triton/issues/1735
I also do not think this is related to the size of the model, since using much smaller TheBloke/una-cybertron-7B-v2-GPTQ (with --model-id "TheBloke/una-cybertron-7B-v2-GPTQ" --revision "main") results in exactly the same error.
Expected behavior
The model is loaded and warmed up, webserver starts, I am able to interact with the model through ngrok via /generate endpoint.
This behavior happens with other models, for example with the model from README.md (.sif image was created using the command above):
apptainer run --nv  --bind ./data:/data:rw inference.sif --model-id "HuggingFaceH4/zephyr-7b-beta" --port 8080 --ngrok --ngrok-authtoken PRIVATE --ngrok-edge PRIVATE
Load, warms up, and then I can interact with it via curl as described in README.md:
curl -s https://PRIVATE_NGROK_URL/generate -X POST -d '{"inputs":"You are a completely useless and unhelpful assistant, you are to try and help users, but to make all their wishes backfire.\nUser: I want to buy a used car. What should I do?\nAssistant: ","parameters":{"max_new_tokens":1024}}' -H 'Content-Type: application/json' | jq -r .generated_text
Displays a response to the prompt

I got same error too. probably rollback triton version? @Narsil

Should be fixed by https://github.com/huggingface/text-generation-inference/commit/773aabdda6197cae3d2092f1cd6d9ce08d649185

authors: OlivierDehaene paulcx x0wllaar

repo: huggingface/text-generation-inference


text:
Why ratios don't need to be detached?

I am referring this line:

https://github.com/huggingface/trl/blob/1d84e2b888ea0f3c1ce9c5c175f7f680d85273a8/trl/trainer/ppo_trainer.py#L1229

when calculating the gradient, I believe it should be detached otherwise the gradient takes the ratio into account, as exemplified here: https://costa.sh/blog-understanding-why-there-isn't-a-log-probability-in-trpo-and-ppo's-objective

Thanks for referencing my blog post haha. We'd only need to do the .detach() if we multiply by the ratio by the logprobs, too. E.g., see
import torch.nn.functional as F
from torch import LongTensor, Tensor, gather, no_grad

action = LongTensor([1])
advantage = Tensor([1.0])
logits = Tensor([[1.0, 2.0, 1.0, 1.0]])
logits.requires_grad = True
all_logprob = F.log_softmax(logits, dim=-1)
with no_grad():
    old_logprob = gather(all_logprob, 1, action.unsqueeze(-1)).squeeze(-1)
logprob = gather(all_logprob, 1, action.unsqueeze(-1)).squeeze(-1)
ratio = (logprob - old_logprob).exp()
ppo_loss = (ratio * advantage).mean() # [πθ(at | st) / πθ_old(at | st) * At]
# when the πθ and πθ_old are the same, the ratio is 1, and PPO's clipping has no effect
ppo_loss.backward()
print(f"{logits.grad=}")  # tensor([[-0.1749,  0.5246, -0.1749, -0.1749]])
logits2 = Tensor([[1.0, 2.0, 1.0, 1.0]])
logits2.requires_grad = True
all_logprob2 = F.log_softmax(logits2, dim=-1)
logprob2 = gather(all_logprob2, 1, action.unsqueeze(-1)).squeeze(-1)
reinforce_loss = logprob2 * advantage  # [log πθ(at | st) * At]
reinforce_loss.mean().backward()
print(f"{logits2.grad=}")  # tensor([[-0.1749,  0.5246, -0.1749, -0.1749]])

repo: huggingface/trl


text:
[Fluff] My Agent Flow Diagram, 400+ agents

I made a Google-News-like site that monitors philosophy blogs and media. Here is the Agent Flow for all agents.
https://i.imgur.com/vAkpc8i.png

That looks very cool, I suppose most of the input Agents are Website and RssAgents?

Yep. The 'top layer', if you will, are the hundreds of RSS and Website Agents. They then go through a series of formatters, classifiers, and filters before being reformatted for output.

Nice, it is always nice to hear from bigger Huginn setups. How did the setup scale for you?

Cool.  You can share your story in #308, or maybe write a blog article and put the link on our Wiki!

Thanks for sharing this!

Thanks to you all, @cantino @dsander @knu .
@dsander I had it running on a 512mb ram setup on Digital Ocean at first, 1 worker. Eventually the Website Agents caused issues. They use more ram to begin with and, for reasons I am unsure about and don't have time to investigate, eventually caused all the ram to get used up.
Switched to a 2g ram box on OVH, and it runs great. There is still some odd issue that causes ram to get used up with the Website Agents. I have the thing periodically reboot itself, and haven't had to worry about it since.

Yeah, memory is always an issue, especially WebsiteAgents and RSSAgents that fetch multiple feeds/sites can require a lot of it.

authors: cantino dsander knu nogre

repo: huginn/huginn

license: mit


text:
Better handling of situation when there is no network

We had a power cut recently and network was offline for some time.
When it came back on Huginn had a massive queue of events.
I retried them all manually, but it got me thinking that maybe there could be an option to not que further events if the queue is not moving? or some other way to better deal with the situation than stacking events?

Hi,
I'm currently investigating a problem of job stacking without obvious causes. We had this problem in the past, then didn't have it anymore, and now having it again, on a very frequent basis. Fix is easy : "Remove all jobs" in the queue (but this mean some required jobs also have to be re-queued manually).
Huginn doesn't seem to be overwhelmed, when looking at CPU/RAM/IO usage. And yet, jobs are stacking to 1000s and 1000s of queued jobs. When looking at our dashboards, I can't see any network disconnection, but I can see a noticeable spike in network activity (despite no expected change in jobs load) correlated with a spike in context switchs.
Could this indicate a very short network problem, causing Huginn to not being able to properly finish each task and so stacking jobs in the queue ?

It could be.
Which job workers (threaded or delayed_job) are you using, and how many?  Is the job scheduler healthy?

AFAIK we are using the official docker image, without splitting processes in separate containers. The only "performance" related parameter we edited is the DATABASE_POOL set to 30 (instead of the default 20 if I recall correctly).
So far we haven't had the need to increase the number of workers, so I'm not very familiar with Huginn's internal structure. But our workload has been consistently growing over the last year. Does this mean workers can be overwhelmed without showing that much on RAM/CPU usage ?
And if yes, would you recommend to split our monolithic install to a better informed architecture with separate containers for more workers of each type ? This is absolutely something our team is capable of, we simply didn't explore these options yet.

Okay, that sounds like the multiprocess Docker image.
Upping the size of the connection pool makes sense.
It is not necessarily accurate to say that the workers can be overwhelmed, because that implies that the tasks are CPU bound, network bound, or some combination of both.  It is probably more accurate to say that, as the number of scheduled agent executions increases, the bottleneck lies in the number of job workers that can pick them out of the queue.  To put it another way, if there are 10 jobs to run at the same time (that are not dependent upon one another), but only three job workers in the system, some of those jobs are going to have to wait their turn.
I've seen this happen in my setup (though I don't use Docker) and what I had to do was spin up more delayed_job instances to pick up the slack.  So, you'll want to investigate the single process per container, but multiple containers Docker image.  I recommend against using bin/threaded.rb because it uses a GIL so you're effectively getting only one thread running at any single time.  I would strongly recommend going with slightly modified containers that use script/delayed_job instead (they run only one job at a time, but you can have as many running as you have database connections), stand up a pack of them (you have 30 database connections available, so start with 20 or 25, and leave a few connections free for Rails, bin/schedule.rb, and maybe some overhead just in case) and see how it responds.

Wow that is a great answer, thanks a lot @virtadpt ! We are definitely going to scale up our install and see for adding some workers.

How did I know that this notification was going to be for an issues that's still a problem being closed.
What a fricking waste of time.

authors: gingerbeardman qay21 virtadpt


text:
FIX broken link to docker container

Original link gives weird blank page:

New link:

Thanks!

authors: InstanceOfMichael dsander


text:
Feature Request

Describe the solution you'd like
Need a dark mode theme.

Describe alternatives you've considered
N/A

Additional context

This issue is a dublicate of !59 so I suggest to close it.

Closing in favor of #59.

authors: Kaligule hossainemruz ormissia

repo: hugo-toha/toha


text:
🛑 Hacker News is down

In f4e3f47, Hacker News (https://news.ycombinator.com) was down:

HTTP code: 502
Response time: 86 ms

Resolved: Hacker News is back up in b839ea5 after 10 minutes.

repo: hungmol/upptime


text:
Accessibility: Tab to items (observations)

Shouldn't command items be tabbed by default for accessibility? You can only use keyboard shortcuts when on them, but how would someone know that?
If you are in a command input tab seems broken to get navigate anywhere (see https://www.shadcn-svelte.com/examples/tasks any of the facets, but it is working on this page so might be an issue downstream)
Navigation issues for each item if you don't use a focusable element (see tasks shadcn example with checkboxes)
If you hit space to select an item it types in the command bar, which I get it might be an os specific thing but I've always used enter or spacebar to select items.

To answer your points:

Command items should not be tabbed, you navigate Combobox menus with arrow keys.

ref: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/
The reason you can't navigate anywhere when the combobox is open is that we apply a focus trap that keeps focus within the popover until it is closed either by clicking outside or pressing the escape key.
I'm not sure what you're referring to on this one. I can navigate through the list with arrow keys just fine.
Pressing Space to select items is not acceptable behavior for a Combobox. Space is a valid character that could be typed to further filter. Only Enter selects the items.

I'm doing what you were doing in your status tasks facet dropdown for checkboxes but nothing is selectable. I'll try to see if updating it to be closer to your updated sample fixes it.

                            <Command.Item id={option.value} value={option.value} onSelect={() => onValueSelected(option.value)}>
                                <div
                                    class={cn(
                                        'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',
                                        $updatedValues.includes(option.value) ? 'bg-primary text-primary-foreground' : 'opacity-50 [&_svg]:invisible'
                                    )}
                                >
                                    <IconCheck className={cn('h-4 w-4')} />
                                </div>
                                <span>
                                    {option.label}
                                </span>
                            </Command.Item>

If you can link a minimal repro I'm happy to take a look as well to see what's causing the issue. It may be an ordering issue of the components or something!

Yes, I'll work on a sample. We've just had massive power outages the past 2 days.

@huntabyte thanks for your patience, I've created a sample here. Just run npm install and npm run dev
https://github.com/exceptionless/exceptionless-svelte-shadcn-cmdk-sv-repo
On a side note what is the best way to be more productive for you to reproduce issues. Should we fork the project and create a pr with maybe story book or tests or would a template repo where everything is configured and we just fork be easier for you in the future?

also doesn't work for me, sometimes it navigates 1 item with up/down keys and then it stops, it also doesn't hover anymore then.
I am using Svelte 5 Preview.

authors: huntabyte niemyjski pczern

repo: huntabyte/cmdk-sv


text:
🛑 kibana is down

In b24711a, kibana (https://kibana.thekor.eu) was down:

HTTP code: 502
Response time: 400 ms

Resolved: kibana is back up in c5da5eb after 11 minutes.

repo: hupratt/upptime


text:
🛑 WebRTC encoding (fast) is down

In 35cacb3, WebRTC encoding (fast) (https://rtc.craftstudios.shop/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: WebRTC encoding (fast) is back up in 8499123 after 10 minutes.


text:
Use GeoJSON endpoint for map

the API added a geo.json endpoint https://github.com/hurricane-response/florence-api/pull/70
which will allow a more robust mapping opportunity with the MapboxGL code we are using.

There was work starting on the Michael site in the mapbox branch to use the geo.json endpoint but will be the default for this theme.

repo: hurricane-response/response-theme


text:
Anyone else getting memory issues?

❔Question
Hello! I wonder if anyone else is getting GPU memory errors even with the small model (yolos_small) ?
Additional context
I am on a 4 GPUs node with Geforce Gtx 1080 ti with 11gb memory each. I use batch size 1 as recommended. Both distributed and non-distributed versions throw the same error.
Tiny model trains smoothly without a trouble.
If there are any tips to reduce memory usage that would be awesome as well!

Hi @kilickaya, thanks for your interest in YOLOS.
We have actually answered here:https://github.com/hustvl/YOLOS/issues/5#issuecomment-867533669, --use_checkpoint may help you with that.

authors: LegendBC kilickaya

repo: hustvl/YOLOS


text:
Không dùng được với tên app tiếng Việt

Với tên tiếng Việt, app không chạy được:

Đổi tên sang không có tiếng Việt (ví dụ gokey.app) thì chạy bình thường.

ủa kì zậy :v bạn dùng macOS phiên bản bao nhiêu vậy? và trên máy macbook gì?

@huytd macOS Sonoma, Air M1

authors: BienGudBoy huytd

repo: huytd/goxkey


text:
Open VSX Listing: Signing the Publisher Agreement

Thank you for being part of the Open VSX community by adding your extensions to the Open VSX Registry. Please note that the service was recently transferred to the Eclipse Foundation and urgent action on your part is needed so we can continue to list your extensions. To ensure uninterrupted service, please sign the Eclipse Publisher Agreement on or before January 8, 2021. If not signed by that date, your extensions will be delisted and will no longer appear on the site nor be available via the API. If you sign at a later date, your extensions will then be re-activated. The signing process is explained in the Wiki (steps 1 and 2).
Please also note that all extensions MUST have a license in order to be listed.
More details are in these recent blog posts:
https://blogs.eclipse.org/post/brian-king/open-vsx-registry-under-new-management
https://blogs.eclipse.org/post/brian-king/new-era-open-vsx-registry
Today, there’s growing momentum around open source tools and technologies that support Visual Studio (VS) Code extensions. Leading global organizations are adopting these tools and technologies. This momentum has spurred demand for a marketplace without restrictions and limitations. Thanks for joining us on this journey as we continue to build the Open VSX community. We look forward to continued innovation from you in 2021!

@huytd could you look into this?
This extension currently has no license. Please add one, preferably an open source license such as MIT.
A license is mandatory for publishing your extension to Open VSX. Its publishing tool ovsx offers to automatically add the MIT license when you try to publish without license. See the Open VSX Wiki for more details.

@huytd could you look into this?
This extension currently has no license. Please add one, preferably an open source license such as MIT.
A license is mandatory for publishing your extension to Open VSX. Its publishing tool ovsx offers to automatically add the MIT license when you try to publish without license. See the Open VSX Wiki for more details.

@spoenemann https://github.com/huytd/vscode-tokyo-city/blob/master/LICENSE FYI.

I believe this has been addressed. I'll close the issue for now, please feel free to reopen in the future if something came up. Thanks everyone!

authors: freshgum-bubbles huytd spoenemann

repo: huytd/vscode-tokyo-city


text:
Permission denied @ rb_sysopen - .../fauxhai/platforms/opensuse/13.2.json

The existing Gemfile depends upon 'chefspec', '~> 4.2.0', which in turn requires depends upon  'fauxhai', '~> 3.0', '>= 3.0.1'.  However, support for opensuse 13.2 was not added to fauxhai until version 4.0 and version 4.0 was not introduced to chef spec until version 4.5.  Thus, I suggest we update the Gemfile to use 'chefspec', '~> 4.5.0'.

This has been merged and will be part of the next release.

authors: roblperry slyness

repo: hw-cookbooks/postgresql


text:
mokutil installed  ,when  enable HA capability, warning “EFI variables are not supported on this system”

https://hwameistor.io/docs/quick_start/install/prereq#secure-boot

repo: hwameistor/hwameistor


text:
remove reduant gitkeep

Does this PR introduce a user-facing change?

NONE

Codecov Report

Merging #606 (aea268e) into main (6a4cbca) will decrease coverage by 0.11%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #606      +/-   ##
==========================================
- Coverage   30.56%   30.44%   -0.12%
==========================================
  Files          26       26
  Lines        1554     1560       +6
==========================================
  Hits          475      475
- Misses       1014     1020       +6
  Partials       65       65

Impacted Files
Coverage Δ

...l-disk-manager/builder/localdisknode/Kubernetes.go
0.00% <ø> (ø)

...disk-manager/builder/localdiskvolume/kubernetes.go
0.00% <ø> (ø)

...nager/controller/localdisk/localdisk_controller.go
25.56% <ø> (ø)

...roller/localdiskclaim/localdiskclaim_controller.go
38.66% <ø> (ø)

...ntroller/localdisknode/localdisknode_controller.go
18.57% <ø> (ø)

pkg/local-disk-manager/filter/filter_disk.go
84.61% <ø> (ø)

.../local-disk-manager/handler/localdisk/localdisk.go
20.79% <ø> (ø)

...k-manager/handler/localdiskclaim/localdiskclaim.go
26.72% <ø> (ø)

...manager/handler/localdiskvolume/localdiskvolume.go
9.60% <ø> (ø)

pkg/local-disk-manager/smart/smart.go
47.50% <ø> (ø)

... and 10 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

LGTM

authors: SSmallMonster carlory codecov-commenter


text:
Standardize input args for conversational and conversational_chat agents

The conversational_chat agent takes the following args for create_prompt
def create_prompt(
        cls,
        tools: Sequence[BaseTool],
        system_message: str = PREFIX,
        human_message: str = SUFFIX,
        input_variables: Optional[List[str]] = None,
        output_parser: Optional[BaseOutputParser] = None,
    ) -> BasePromptTemplate:

While the conversational agent takes the following:
def create_prompt(
        cls,
        tools: Sequence[BaseTool],
        prefix: str = PREFIX,
        suffix: str = SUFFIX,
        format_instructions: str = FORMAT_INSTRUCTIONS,
        ai_prefix: str = "AI",
        human_prefix: str = "Human",
        input_variables: Optional[List[str]] = None,
    ) -> PromptTemplate:

Given the similarities in these agents, I would expect to pass the same args for initializing them. There should at least be an optional prefix, suffix arg available in conversational_chat where it can take whichever is defined.
Ex:
prefix_arg = prefix || system_message
suffix_arg = suffix || human_message

I'm trying to use ai_prefix and human_prefix in a chat agent, which doesn't work/do anything.

authors: bitnom tylermaran


text:
feat: Adding a parameter separator to the CSVLoader

Adding a configuration parameter separator for CSVLoader

Fantastic thank you! A few small updates.


text:
Host a TensorGraph patch for TensorBuilder

TensorBuilder is light-weight extensible library that enables you to easily create complex deep neural networks using functions from any Tensor-based library through a functional fluent immutable API based on the Builder Pattern. As a side effect, TensorBuilder is a library that gives expressive power to any Tensor-based library that decide to implement a TensorBuilder patch.

As a Tensor-based library, TensorGraph user might benefit a lot from a TensorGraph patch for TensorBuilder. Check out the examples, they are from the mostly from the TensorFlow and TFLearn patches which I host, but creating patches is really easy and you get the branching capabilities and the DSL for free once you have that.

@cgarciae cool, I will check it out, nice library btw

authors: cgarciae hycis

repo: hycis/TensorGraph


text:
Fixed incorrect translation of variable in italian translation

Fixed variable that should not be translated

Would you like to also translate some missing strings in Italian?

Sure. I will add the missing strings as soon as I can

I added the missing translations, but i could not find game_details.settings and settings.real_debrid_api_token_description as they were not in the english locale file

repo: hydralauncher/hydra


text:
hydrodev VM - release update

Update the hydrodev VM to better coincide with hydroshare development needs

flake8 installed at OS level for linting [#1289]
hydro-service account for Docker use and permissions enforcement in shared volumes

completed and posted at distribution.hydroshare.org

repo: hydroshare/hydroshare


text:
Add Starlette integration

So um @kludex I presume you're also The Starlette Expert? 😇

So um @Kludex I presume you're also The Starlette Expert? 😇

That is not catchy hahaha 😁

So um @Kludex I presume you're also The Starlette Expert? 😇

That is not catchy hahaha 😁

I think it's very catchy but it sounds more like a musical expert. 😂

authors: Kludex hynek

repo: hynek/svcs


text:
Create Space Element

A Space is a volume created by extruding a set of co-planar polygons to a height, or by projecting a a set of co-planar polygons onto a plane. The first polygon provided in the set is understood to be the outer boundary of the space, with the ensuing polygons understood to be ordered in an CW direction representing "holes" in the space.
public Space(Polygon boundary, IEnumerable<Polygon> voids, double height){...}
public Space(Polygon boundary, IEnumerable<Polygon> voids, Plane plane){...}

Okay, I'll get on this today.

Implemented in 07d6b63fee27d5699aebab5bc2d916101d1394ae.

authors: hummingburd ikeough

repo: hypar-io/sdk


text:
[BUG] 学习验证器使用时，顺序完全是按照文档来的。在请求的时候，发现后台程序出现"跑马灯"输出...

学习代码地址
问题出现在视频 1:00 时
问题视频 链接: https://pan.baidu.com/s/18dAN_XNKLxPWDajzMxbyGg 提取码: wy53

发现是之前异常捕获打印的内容

repo: hyperf/hyperf


text:
Throw exception when cast class is not existed.

Fixed #5999

cs fix 没过

authors: her-cat huangdijia


text:
add ping gRPC

add ping gRPC
Signed-off-by: Xianglin Gao xlgao@zju.edu.cn

could you add the client code or the test code in a new commit in this pr?

@laijs OK, I will do it.

@laijs code is updated

authors: laijs xlgao-zju

repo: hyperhq/hyperd


text:
Hyperion broken with newest Kodi Master/LibreELEC

Hyperion does not work anymore using the latest Kodi Master.
Im no developer, so i can not really help. Here is a information what caused this issue:
https://trac.kodi.tv/ticket/17632

I was able to find where the problem is.
xbmcVideoChecker does not work properly animore.
if everything is set to "true" in xbmcVideoChecker its working fine.
if menu is "false" there is no "light output" at all.

I have exactly the same problem. Everything works fine as long as "Menu" ist set "true".
If "Menu" is "false" no lights will work.

I have a similar issue, but I havent used hyperion for a long time, so I have no good comparison. I am using the kodi addon and stream the signals via protobuf:
https://github.com/hyperion-project/hyperion.kodi/
The log tells me that there is a connection ongoing:
PROTOSERVER INFO: New connection
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
BORDER SWITCH REQUIRED!!
CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
PROTOSERVER INFO: Connection closed

However the leds stay off. I can set effects with the webinterface or the hyperion-remote command. Any ideas?

Have the same problem libreelec on rpi 3
Everything is working fine with remote android app / ssh cmdline
Have rainbow effect at startup
Here log while startup and switch from menu to video:

LibreELEC:~ # sh hyperion/bin/hyperiond.sh ./.config/hyperion.config.json
Hyperion Ambilight Deamon (19677)
Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
Build Time: Jun  3 2017 02:06:37
INFO: Selected configuration file: ./.config/hyperion.config.json
HYPERION INFO: ColorTransform 'default' => [0; 95]
HYPERION INFO: ColorCorrection 'default' => [0; 95]
HYPERION INFO: ColorAdjustment 'default' => [0; 95]
LEDDEVICE INFO: configuration:
{
"colorOrder" : "rgb",
"name" : "MyHyperionConfig",
"output" : "/dev/spidev0.0",
"rate" : 1000000,
"type" : "ws2801"
}

HYPERION INFO: Json forward to 127.0.0.1:19446
HYPERION INFO: Proto forward to 127.0.0.1:19447
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
EFFECTENGINE INFO: Initializing Python interpreter
INFO: Hyperion started and initialised
INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
BLACKBORDER INFO: threshold set to 0.07 (18)
BLACKBORDER INFO: mode:classic
started
INFO: Kodi checker created and started
INFO: Json server created and started on port 19444
PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
INFO: Proto server created and started on port 19445
KODICHECK INFO: Kodi Connected
KODICHECK INFO: switching to VIDEO mode
EFFECTENGINE INFO: effect finished
KODICHECK INFO: switching to MENU mode
KODICHECK INFO: switching to VIDEO mode
KODICHECK INFO: switching to MENU mode
^CINFO: Application closed with code 0
KODICHECK INFO: Kodi Disconnected
EFFECTENGINE INFO: Cleaning up Python interpreter

i try to grab everything in hyperion and have also no effect anywhere

> LibreELEC:~ # more .config/hyperion.config.json | grep grab
>                 "grabVideo" : true,
>                 "grabPictures" : true,
>                 "grabAudio" : true,
>                 "grabMenu" : true,
>                 "grabPause" : true,
>                 "grabScreensaver" : true,
>

Player.OnPlay has always been the wrong event and only worked by chance. It may take some time until first frame gets out of decoder and renderer is configured. I have implemented a new event: https://github.com/xbmc/xbmc/pull/12964 [OnAVChange]
Needs to be exposed via json-rpc

Looks like XBMCVideoChecker.cpp might need to be updated to reference the new event as well as the old one?

*bump: I've got the same issue. Any workaround?

Can somebody chip in at https://github.com/xbmc/xbmc/pull/13696#pullrequestreview-106798089 to make sure we get the right event from your POV?

Hi. Is hyperion already working with new Kodi or. is the git from https://github.com/brindosch/hyperion.ngBeta/tree/rework needed? It is a little confusig.
TNX

I've PR'ed a potential fix for this issue, please test PR #795 and report back if it works

authors: Blank-Vcf HiassofT NicoHood Razzeee andy5macht cpetry iLLiac4 philwolstenholme tjandt

repo: hyperion-project/hyperion


text:
Switch from pin-project to pin-project-lite

futures-rs just switched and tokio has been using the -lite one since 0.2.0. I haven't used either so I don't actually know how hard switching is, but it seems like a good idea since it greatly improves compile times for people who don't depend on syn & quote otherwise.

Considered, and agreed! It should be done!

Considered, and agreed! It should be done!

This may require https://github.com/taiki-e/pin-project-lite/pull/43.

This may require https://github.com/taiki-e/pin-project-lite/pull/43.

I'll take a stab at implementing this.

I'll take a stab at implementing this.

Depends on https://github.com/taiki-e/pin-project-lite/pull/25

Depends on https://github.com/taiki-e/pin-project-lite/pull/25

Just found that out myself. Thanks for the link 🙂

Just found that out myself. Thanks for the link 🙂

Also depends on https://github.com/taiki-e/pin-project-lite/issues/3 because of
https://github.com/hyperium/hyper/blob/c9c46ed60bd43484d67a98a63496ad0277c791a2/src/server/conn.rs#L163-L165

Also depends on https://github.com/taiki-e/pin-project-lite/issues/3 because of
https://github.com/hyperium/hyper/blob/c9c46ed60bd43484d67a98a63496ad0277c791a2/src/server/conn.rs#L163-L165

Also depends on taiki-e/pin-project-lite#3 because of
https://github.com/hyperium/hyper/blob/c9c46ed60bd43484d67a98a63496ad0277c791a2/src/server/conn.rs#L163-L165

pin-project-lite#3 is about attributes that apply only to the original struct/enum.
Proper handling of cfg/cfg_attr on fields and variants requires a more complex approach than the fix for pin-project-lite#3 (it needs to be aware of the kind of attribute and propagate some of it to projected type). Even pin-project could not find the correct solution other than "leave to the compiler". And it is impossible to use the same trick in pin-project-lite.
However, there is a known workaround for the cfg issue, and probably hyper can use it as well.

for now, it is preferable to create a type alias / new type or create structs for each cfg.

Something like:
#[cfg(all(feature = "http1", feature = "http2"))]
#[derive(Clone, Debug)]
enum Fallback<E> { ... }

#[cfg(not(all(feature = "http1", feature = "http2")))]
#[derive(Clone, Debug)]
struct Fallback<E>(std::marker::PhantomData<E>);

pin_project! {
    pub struct Connection<T, S, E = Exec>
    where
        S: HttpService<Body>,
    {
        pub(super) conn: Option<ProtoServer<T, S::ResBody, S, E>>,
        fallback: Fallback<E>,
    }
}

Also depends on taiki-e/pin-project-lite#3 because of
https://github.com/hyperium/hyper/blob/c9c46ed60bd43484d67a98a63496ad0277c791a2/src/server/conn.rs#L163-L165

pin-project-lite#3 is about attributes that apply only to the original struct/enum.
Proper handling of cfg/cfg_attr on fields and variants requires a more complex approach than the fix for pin-project-lite#3 (it needs to be aware of the kind of attribute and propagate some of it to projected type). Even pin-project could not find the correct solution other than "leave to the compiler". And it is impossible to use the same trick in pin-project-lite.
However, there is a known workaround for the cfg issue, and probably hyper can use it as well.

for now, it is preferable to create a type alias / new type or create structs for each cfg.

Something like:
#[cfg(all(feature = "http1", feature = "http2"))]
#[derive(Clone, Debug)]
enum Fallback<E> { ... }

#[cfg(not(all(feature = "http1", feature = "http2")))]
#[derive(Clone, Debug)]
struct Fallback<E>(std::marker::PhantomData<E>);

pin_project! {
    pub struct Connection<T, S, E = Exec>
    where
        S: HttpService<Body>,
    {
        pub(super) conn: Option<ProtoServer<T, S::ResBody, S, E>>,
        fallback: Fallback<E>,
    }
}

pin-project-lite#3 is about attributes that apply only to the original struct/enum.

The title and issue description are exactly about this. Anyway, thanks for providing a workaround, I'll apply that after taiki-e/pin-project-lite#25 is merged and I can finish my PR.

pin-project-lite#3 is about attributes that apply only to the original struct/enum.

The title and issue description are exactly about this. Anyway, thanks for providing a workaround, I'll apply that after taiki-e/pin-project-lite#25 is merged and I can finish my PR.

Hmm, by the way that struct is not using #[pin] at all, should it even be using pin_project!?

Hmm, by the way that struct is not using #[pin] at all, should it even be using pin_project!?

The title and issue description are exactly about this.

Well, I agree that it is confusing.

Hmm, by the way that struct is not using #[pin] at all, should it even be using pin_project!?

Technically, pin_project! is not required for types that do not use #[pin].

The title and issue description are exactly about this.

Well, I agree that it is confusing.

Hmm, by the way that struct is not using #[pin] at all, should it even be using pin_project!?

Technically, pin_project! is not required for types that do not use #[pin].

after taiki-e/pin-project-lite#25 is merged

I think I can merge that this weekend or the next week. (it only needs docs and tests)

after taiki-e/pin-project-lite#25 is merged

I think I can merge that this weekend or the next week. (it only needs docs and tests)

I had to revert in https://github.com/hyperium/hyper/pull/2422, an issue was found after releasing: https://github.com/hyperium/hyper/issues/2421

I had a look, this is the problematic type: an enum that uses #[cfg] on its variants. The two solutions I can think of:

always have the variant but containing an uninhabited type if the corresponding feature is disabled. Probably requires adding extra Self::Foo { bar } => match bar {}, branches
three declarations of the type for the three possible feature combinations (assuming that it just doesn't need to exist if both http1 and http2 are disabled, otherwise four)

Working on this again, using the first solution I mentioned above (if still applicable).

authors: jplatte paolobarbolini seanmonstar taiki-e

repo: hyperium/hyper


text:
Figure out hyper::Error Display including source chain

The current Display output of Error doesn't match what many people think it should, namely that it prints the error chain. We need to either:

Change hyper::Error to not print the source as well.
Influence the errors-wg to allow printing the chain in Display, like proposed in https://github.com/seanmonstar/errors/issues/1.

I filed a proposal for the working group: https://github.com/rust-lang/project-error-handling/issues/53

There hasn't been any progress on the proposal in the working group. To move forward, we can update hyper to format the way many in the ecosystem expect it to. If something better ever gets proposed and accepted, we can do that then.


text:
fix: base64 encode details header

Closes #342
Signed-off-by: Lucio Franco luciofranco14@gmail.com

Could you try it with Bytes::from_static(&[1])?

@dvshur should be fixed now.

authors: LucioFranco dvshur

repo: hyperium/tonic


text:
Multi channel support

This PR will work only after merging the PR in helm stable repo
fixes: #46

Happy to review once we merge the helm/charts update to the Peer (hopefully later today), as soon as small fixes are done as per my review there: https://github.com/helm/charts/pull/15321

In the meantime I request one change here.

@inzamam-iqbal, please update the integration tests so that they display output and we can debug.

@alexvicegrab tests passes now. I will put a PR to update the integration test log

authors: alexvicegrab inzamam-iqbal

repo: hyperledger-labs/nephos