mohamedawnallah commented on PR #35216: URL: https://github.com/apache/beam/pull/35216#issuecomment-2996596518
Hey @damccorm, Most of the main tasks in this PR are nearly complete. However, the `beam_PreCommit_Python_ML` job is currently failing due to an issue related to Docker container port mapping. I've already tried a few workarounds such as ensuring there are no port conflicts. This is supposed to run fine on a typical GitHub hosted Ubuntu runner. The runner for this `beam_PreCommit_Python_ML` job is self-hosted which leads me to mostly think this is likely a configuration issue specific to the self-hosted environment. Given I have little input into the setup or computing environment of the self-hosted runner, How am I supposed to troubleshoot and debug this further? ``` cls = <class 'apache_beam.ml.rag.enrichment.milvus_search_it_test.TestMilvusSearchEnrichment'> @classmethod def setUpClass(cls): > cls._db = MilvusEnrichmentTestHelper.start_db_container(cls._version) apache_beam/ml/rag/enrichment/milvus_search_it_test.py:420: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ apache_beam/ml/rag/enrichment/milvus_search_it_test.py:273: in start_db_container vector_db_container.start() target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:83: in start self._connect() target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59: in wrapper return wrapped(*args, **kwargs) target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:65: in _connect self._healthcheck() target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59: in wrapper return wrapped(*args, **kwargs) target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:74: in _healthcheck healthcheck_url = self._get_healthcheck_url() target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/milvus/__init__.py:69: in _get_healthcheck_url port = self.get_exposed_port(self.healthcheck_port) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ wrapped = <bound method DockerContainer.get_exposed_port of <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>> instance = <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0> args = (9091,), kwargs = {} @wrapt.decorator def wrapper(wrapped: Callable, instance: Any, args: list, kwargs: dict) -> Any: from testcontainers.core.container import DockerContainer if isinstance(instance, DockerContainer): logger.info("Waiting for container %s with image %s to be ready ...", instance._container, instance.image) else: logger.info("Waiting for %s to be ready ...", instance) exception = None for attempt_no in range(config.max_tries): try: return wrapped(*args, **kwargs) except transient_exceptions as e: logger.debug( f"Connection attempt '{attempt_no + 1}' of '{config.max_tries + 1}' " f"failed: {traceback.format_exc()}" ) > time.sleep(config.sleep_time) E Failed: Timeout (>600.0s) from pytest-timeout. target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:65: Failed _ ERROR at setup of TestMilvusSearchEnrichment.test_vector_search_with_inner_product_similarity _ [gw2] linux -- Python 3.9.22 /runner/_work/beam/beam/sdks/python/test-suites/tox/py39/build/srcs/sdks/python/target/.tox-py39-ml/py39-ml/bin/python wrapped = <bound method DockerContainer.get_exposed_port of <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0>> instance = <testcontainers.milvus.MilvusContainer object at 0x7e27846ac4f0> args = (9091,), kwargs = {} @wrapt.decorator def wrapper(wrapped: Callable, instance: Any, args: list, kwargs: dict) -> Any: from testcontainers.core.container import DockerContainer if isinstance(instance, DockerContainer): logger.info("Waiting for container %s with image %s to be ready ...", instance._container, instance.image) else: logger.info("Waiting for %s to be ready ...", instance) exception = None for attempt_no in range(config.max_tries): try: > return wrapped(*args, **kwargs) target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/waiting_utils.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ target/.tox-py39-ml/py39-ml/lib/python3.9/site-packages/testcontainers/core/container.py:155: in get_exposed_port return self.get_docker_client().port(self._container.id, port) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <testcontainers.core.docker_client.DockerClient object at 0x7e27846acdc0> container_id = 'a261d8725a7cc1549[4082](https://github.com/apache/beam/actions/runs/15813470637/job/44568183065?pr=35216#step:8:4084)8cafa5b084f506ab9a4f7c8b852c92be5d98638abdd' port = 9091 def port(self, container_id: str, port: int) -> int: """ Lookup the public-facing port that is NAT-ed to :code:`port`. """ port_mappings = self.client.api.port(container_id, port) if not port_mappings: > raise ConnectionError(f"Port mapping for container {container_id} and port {port} is " "not available") E ConnectionError: Port mapping for container a261d8725a7cc154940828cafa5b084f506ab9a4f7c8b852c92be5d98638abdd and port 9091 is not available -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@beam.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org