• Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • rhel-8.10
    • python3
    • None
    • Yes
    • None
    • Patch
    • 1
    • rhel-sst-pt-python-ruby-nodejs
    • ssg_platform_tools
    • 3
    • False
    • Hide

      None

      Show
      None
    • None
    • Not associated with a product
    • PT PRNDL 2025 S01
    • None
    • None
    • x86_64
    • None

      Hi,

      this is my first bug submit here, i hope i categorized this correct. i could not find the exact package to select here but this package sits in rhel8-base repo. 

      After  RHSA-2025:0012 and updating python3-requests from 2.20.0-3.el8_8 to 2.20.0-5.el8_10 on mutiple machines we cant use the python-docker to connect to the Docker API, downgrading this packages fixes this. 

      We noticed it due to mk_docker.py Plugin from Checkmk failing to retrieve data, therefore we cant monitor docker containers atm on these hosts.

      Steps to reproduce:
      Update python3-requests to requested version
      have python3-docker installed (tested with python-docker-5.0.0-2.el8) and also docker (docker-ce-24.0.7-1.el8.x86_64)

      python3
      import docker
      client = docker.DockerClient(base_url='unix://var/run/docker.sock')
      Traceback (most recent call last):
        File "/usr/lib/python3.6/site-packages/docker/api/client.py", line 214, in _retrieve_server_version
          return self.version(api_version=False)["ApiVersion"]
        File "/usr/lib/python3.6/site-packages/docker/api/daemon.py", line 181, in version
          return self._result(self._get(url), json=True)
        File "/usr/lib/python3.6/site-packages/docker/utils/decorators.py", line 46, in inner
          return f(self, *args, **kwargs)
        File "/usr/lib/python3.6/site-packages/docker/api/client.py", line 237, in _get
          return self.get(url, **self._set_request_timeout(kwargs))
        File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 548, in get
          return self.request('GET', url, **kwargs)
        File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 535, in request
          resp = self.send(prep, **send_kwargs)
        File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 648, in send
          r = adapter.send(request, **kwargs)
        File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 584, in send
          request, verify, proxies=proxies, cert=cert
        File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 457, in get_connection_with_tls_context
          **host_params, pool_kwargs=pool_kwargs
        File "/usr/lib/python3.6/site-packages/urllib3/poolmanager.py", line 229, in connection_from_host
          return self.connection_from_context(request_context)
        File "/usr/lib/python3.6/site-packages/urllib3/poolmanager.py", line 239, in connection_from_context
          pool_key_constructor = self.key_fn_by_scheme[scheme]
      KeyError: 'http+docker'During handling of the above exception, another exception occurred:Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
        File "/usr/lib/python3.6/site-packages/docker/client.py", line 45, in __init__
          self.api = APIClient(*args, **kwargs)
        File "/usr/lib/python3.6/site-packages/docker/api/client.py", line 197, in __init__
          self._version = self._retrieve_server_version()
        File "/usr/lib/python3.6/site-packages/docker/api/client.py", line 217, in _retrieve_server_version
          'Invalid response from docker daemon: key "ApiVersion"'
      docker.errors.DockerException: Invalid response from docker daemon: key "ApiVersion" is missing.

      This seems to happen due to the new, improved tls handling.

      This Patch below provides a workaround at the time for us. We dont use tls because we connect via unix socket so we can use our monitoring script again untils these issue is completely fixed.

      --- /usr/lib/python3.6/site-packages/requests/adapters.py.save    2025-01-21 15:17:53.489327269 +0100
      +++ /usr/lib/python3.6/site-packages/requests/adapters.py    2024-12-20 13:45:02.000000000 +0100
      @@ -580,8 +580,8 @@
               """         try:
      -            conn = self.get_connection(
      -                request.url, proxies=proxies
      +            conn = self.get_connection_with_tls_context(
      +                request, verify, proxies=proxies, cert=cert
                   )
               except LocationValueError as e:
                   raise InvalidURL(e, request=request) 

              python-maint python-maint
              h.rosenke Henrik Rosenke (Inactive)
              python-maint python-maint
              rhel-python-qe bot rhel-python-qe bot
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: